{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "9cd8236c-1a11-4d08-aad3-d1744d1b26e3",
   "metadata": {},
   "source": [
    "# REPL Basics\n",
    "\n",
    "<a href=\"http://35.236.121.59/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fproject-chip%2Fconnectedhomeip&urlpath=lab%2Ftree%2Fconnectedhomeip%2Fdocs%2Fguides%2Frepl%2FMatter%2520-%2520REPL%2520Intro.ipynb&branch=master\">\n",
    "<img src=\"https://i.ibb.co/hR3yWsC/launch-playground.png\" alt=\"drawing\" width=\"130\"/>\n",
    "</a>\n",
    "<br></br>\n",
    "\n",
    "This goes over the basics of interacting with the REPL."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7b7f651c-2e64-4d0e-aa93-1a01d093c946",
   "metadata": {
    "tags": []
   },
   "source": [
    "## Initialization\n",
    "\n",
    "Let's first begin by setting up by importing some key modules that are needed to make it easier for us to interact with the Matter stack.\n",
    "\n",
    "`ReplStartup.py` is run within the global namespace. This results in all of its imports being made available here.\n",
    "\n",
    "> **NOTE**: _This is not needed if you launch the REPL from the command-line._"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "cdffbe57-bd09-41db-a624-cbfcd65c6eae",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "<span style=\"font-weight: bold\"> Replacing </span> store path .<span style=\"color: #800080; text-decoration-color: #800080\">/credentials/development/</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff\">paa-root-certs</span> with \n",
       "<span style=\"color: #800080; text-decoration-color: #800080\">/home/root/repos/connectedhomeip/credentials/development/</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff\">paa-root-certs</span>\n",
       "Note that you are still running from \n",
       "<span style=\"color: #800080; text-decoration-color: #800080\">/home/root/repos/connectedhomeip/docs/development_controllers/</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff\">matter-repl</span> so other relative\n",
       "paths may be off.\n",
       "                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n",
       "\u001b[1m Replacing \u001b[0m store path .\u001b[35m/credentials/development/\u001b[0m\u001b[95mpaa-root-certs\u001b[0m with \n",
       "\u001b[35m/home/root/repos/connectedhomeip/credentials/development/\u001b[0m\u001b[95mpaa-root-certs\u001b[0m\n",
       "Note that you are still running from \n",
       "\u001b[35m/home/root/repos/connectedhomeip/docs/development_controllers/\u001b[0m\u001b[95mmatter-repl\u001b[0m so other relative\n",
       "paths may be off.\n",
       "                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1738153426.053862][2285034:2285034] CHIP:CTL: Setting attestation nonce to random value\n",
      "[1738153426.054073][2285034:2285034] CHIP:CTL: Setting CSR nonce to random value\n",
      "[1738153426.063146][2285034:2285034] CHIP:DL: NVS set: chip-counters/reboot-count = 3 (0x3)\n",
      "[1738153426.063662][2285034:2285034] CHIP:DL: Got Ethernet interface: enp2s0\n",
      "[1738153426.063914][2285034:2285034] CHIP:DL: Found the primary Ethernet interface:enp2s0\n",
      "[1738153426.064073][2285034:2285034] CHIP:DL: Got WiFi interface: wlp3s0\n",
      "[1738153426.064230][2285034:2285034] CHIP:DL: Found the primary WiFi interface:wlp3s0\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #00ff00; text-decoration-color: #00ff00\">─────────────────────────────────────────────────── </span>Matter REPL<span style=\"color: #00ff00; text-decoration-color: #00ff00\"> ───────────────────────────────────────────────────</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[92m─────────────────────────────────────────────────── \u001b[0mMatter REPL\u001b[92m ───────────────────────────────────────────────────\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "            \n",
       "\n",
       "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">            Welcome to the Matter Python REPL!</span>\n",
       "\n",
       "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">            For help, please type </span><span style=\"color: #008000; text-decoration-color: #008000; font-weight: bold\">matterhelp()</span>\n",
       "\n",
       "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">            To get more information on a particular object/class, you can pass</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">            that into </span><span style=\"color: #008000; text-decoration-color: #008000; font-weight: bold\">matterhelp()</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> as well.</span>\n",
       "\n",
       "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">            </span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n",
       "            \n",
       "\n",
       "\u001b[1;34m            Welcome to the Matter Python REPL!\u001b[0m\n",
       "\n",
       "\u001b[1;34m            For help, please type \u001b[0m\u001b[1;32mmatterhelp\u001b[0m\u001b[1;32m(\u001b[0m\u001b[1;32m)\u001b[0m\n",
       "\n",
       "\u001b[1;34m            To get more information on a particular object/class, you can pass\u001b[0m\n",
       "\u001b[1;34m            that into \u001b[0m\u001b[1;32mmatterhelp\u001b[0m\u001b[1;32m(\u001b[0m\u001b[1;32m)\u001b[0m\u001b[1;34m as well.\u001b[0m\n",
       "\n",
       "\u001b[1;34m            \u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #00ff00; text-decoration-color: #00ff00\">───────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[92m───────────────────────────────────────────────────────────────────────────────────────────────────────────────────\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">The following objects have been created:</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n",
       "\n",
       "\u001b[34mThe following objects have been created:\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">        <span style=\"color: #800000; text-decoration-color: #800000\">certificateAuthorityManager</span><span style=\"color: #000080; text-decoration-color: #000080\">:    Manages a list of CertificateAuthority instances.</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">        </span><span style=\"color: #800000; text-decoration-color: #800000\">caList</span><span style=\"color: #000080; text-decoration-color: #000080\">:                         The list of CertificateAuthority instances.</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">        </span><span style=\"color: #800000; text-decoration-color: #800000\">caList</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">[</span><span style=\"color: #800000; text-decoration-color: #800000\">n</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">]</span><span style=\"color: #800000; text-decoration-color: #800000\">.adminList</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">[</span><span style=\"color: #800000; text-decoration-color: #800000\">m</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">]</span><span style=\"color: #000080; text-decoration-color: #000080\">:         A specific FabricAdmin object at index m for the nth CertificateAuthority </span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">instance.</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "        \u001b[31mcertificateAuthorityManager\u001b[0m\u001b[34m:    \u001b[0m\u001b[34mManages a list of CertificateAuthority instances.\u001b[0m\n",
       "\u001b[34m        \u001b[0m\u001b[31mcaList\u001b[0m\u001b[34m: \u001b[0m\u001b[34m        \u001b[0m\u001b[34m        \u001b[0m\u001b[34m        \u001b[0m\u001b[34mThe list of CertificateAuthority instances.\u001b[0m\n",
       "\u001b[34m        \u001b[0m\u001b[31mcaList\u001b[0m\u001b[1;31m[\u001b[0m\u001b[31mn\u001b[0m\u001b[1;31m]\u001b[0m\u001b[31m.adminList\u001b[0m\u001b[1;31m[\u001b[0m\u001b[31mm\u001b[0m\u001b[1;31m]\u001b[0m\u001b[34m: \u001b[0m\u001b[34m        \u001b[0m\u001b[34mA specific FabricAdmin object at index m for the nth CertificateAuthority \u001b[0m\n",
       "\u001b[34minstance.\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">Default CHIP Device Controller </span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">(</span><span style=\"color: #000080; text-decoration-color: #000080\">NodeId: </span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">112233</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">)</span><span style=\"color: #000080; text-decoration-color: #000080\">: has been initialized to manage </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">caList[</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">0</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">].adminList[</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">0</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">]</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> (FabricId = </span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">1</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">), and is available as </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">devCtrl</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n",
       "\n",
       "\u001b[34mDefault CHIP Device Controller \u001b[0m\u001b[1;34m(\u001b[0m\u001b[34mNodeId: \u001b[0m\u001b[1;34m112233\u001b[0m\u001b[1;34m)\u001b[0m\u001b[34m: has been initialized to manage \u001b[0m\u001b[1;31mcaList\u001b[0m\u001b[1;31m[\u001b[0m\u001b[1;31m0\u001b[0m\u001b[1;31m]\u001b[0m\u001b[1;31m.adminList\u001b[0m\u001b[1;31m[\u001b[0m\u001b[1;31m0\u001b[0m\u001b[1;31m]\u001b[0m\u001b[1;34m \u001b[0m\u001b[1;34m(\u001b[0m\u001b[1;34mFabricId = \u001b[0m\n",
       "\u001b[1;34m1\u001b[0m\u001b[1;34m)\u001b[0m\u001b[1;34m, and is available as \u001b[0m\u001b[1;31mdevCtrl\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%reset -f\n",
    "import importlib.util\n",
    "spec = importlib.util.find_spec('matter.ReplStartup')\n",
    "%run {spec.origin}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "49a01315-6cac-4f8a-830d-adb5b7b9fc27",
   "metadata": {},
   "source": [
    "## Persistent Storage\n",
    "\n",
    "> NOTE: By default, the REPL points to `/tmp/repl-storage.json` for its persistent storage. To change that location, you can pass that in directly as follows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "c05b4b22-f6b1-4669-9358-98b0fe9a9136",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "<span style=\"font-weight: bold\"> Replacing </span> store path .<span style=\"color: #800080; text-decoration-color: #800080\">/credentials/development/</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff\">paa-root-certs</span> with \n",
       "<span style=\"color: #800080; text-decoration-color: #800080\">/home/root/repos/connectedhomeip/credentials/development/</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff\">paa-root-certs</span>\n",
       "Note that you are still running from \n",
       "<span style=\"color: #800080; text-decoration-color: #800080\">/home/root/repos/connectedhomeip/docs/development_controllers/</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff\">matter-repl</span> so other relative\n",
       "paths may be off.\n",
       "                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n",
       "\u001b[1m Replacing \u001b[0m store path .\u001b[35m/credentials/development/\u001b[0m\u001b[95mpaa-root-certs\u001b[0m with \n",
       "\u001b[35m/home/root/repos/connectedhomeip/credentials/development/\u001b[0m\u001b[95mpaa-root-certs\u001b[0m\n",
       "Note that you are still running from \n",
       "\u001b[35m/home/root/repos/connectedhomeip/docs/development_controllers/\u001b[0m\u001b[95mmatter-repl\u001b[0m so other relative\n",
       "paths may be off.\n",
       "                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #00ff00; text-decoration-color: #00ff00\">─────────────────────────────────────────────────── </span>Matter REPL<span style=\"color: #00ff00; text-decoration-color: #00ff00\"> ───────────────────────────────────────────────────</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[92m─────────────────────────────────────────────────── \u001b[0mMatter REPL\u001b[92m ───────────────────────────────────────────────────\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "            \n",
       "\n",
       "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">            Welcome to the Matter Python REPL!</span>\n",
       "\n",
       "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">            For help, please type </span><span style=\"color: #008000; text-decoration-color: #008000; font-weight: bold\">matterhelp()</span>\n",
       "\n",
       "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">            To get more information on a particular object/class, you can pass</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">            that into </span><span style=\"color: #008000; text-decoration-color: #008000; font-weight: bold\">matterhelp()</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> as well.</span>\n",
       "\n",
       "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">            </span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n",
       "            \n",
       "\n",
       "\u001b[1;34m            Welcome to the Matter Python REPL!\u001b[0m\n",
       "\n",
       "\u001b[1;34m            For help, please type \u001b[0m\u001b[1;32mmatterhelp\u001b[0m\u001b[1;32m(\u001b[0m\u001b[1;32m)\u001b[0m\n",
       "\n",
       "\u001b[1;34m            To get more information on a particular object/class, you can pass\u001b[0m\n",
       "\u001b[1;34m            that into \u001b[0m\u001b[1;32mmatterhelp\u001b[0m\u001b[1;32m(\u001b[0m\u001b[1;32m)\u001b[0m\u001b[1;34m as well.\u001b[0m\n",
       "\n",
       "\u001b[1;34m            \u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #00ff00; text-decoration-color: #00ff00\">───────────────────────────────────────────────────────────────────────────────────────────────────────────────────</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[92m───────────────────────────────────────────────────────────────────────────────────────────────────────────────────\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">The following objects have been created:</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n",
       "\n",
       "\u001b[34mThe following objects have been created:\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">        <span style=\"color: #800000; text-decoration-color: #800000\">certificateAuthorityManager</span><span style=\"color: #000080; text-decoration-color: #000080\">:    Manages a list of CertificateAuthority instances.</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">        </span><span style=\"color: #800000; text-decoration-color: #800000\">caList</span><span style=\"color: #000080; text-decoration-color: #000080\">:                         The list of CertificateAuthority instances.</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">        </span><span style=\"color: #800000; text-decoration-color: #800000\">caList</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">[</span><span style=\"color: #800000; text-decoration-color: #800000\">n</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">]</span><span style=\"color: #800000; text-decoration-color: #800000\">.adminList</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">[</span><span style=\"color: #800000; text-decoration-color: #800000\">m</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">]</span><span style=\"color: #000080; text-decoration-color: #000080\">:         A specific FabricAdmin object at index m for the nth CertificateAuthority </span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">instance.</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "        \u001b[31mcertificateAuthorityManager\u001b[0m\u001b[34m:    \u001b[0m\u001b[34mManages a list of CertificateAuthority instances.\u001b[0m\n",
       "\u001b[34m        \u001b[0m\u001b[31mcaList\u001b[0m\u001b[34m: \u001b[0m\u001b[34m        \u001b[0m\u001b[34m        \u001b[0m\u001b[34m        \u001b[0m\u001b[34mThe list of CertificateAuthority instances.\u001b[0m\n",
       "\u001b[34m        \u001b[0m\u001b[31mcaList\u001b[0m\u001b[1;31m[\u001b[0m\u001b[31mn\u001b[0m\u001b[1;31m]\u001b[0m\u001b[31m.adminList\u001b[0m\u001b[1;31m[\u001b[0m\u001b[31mm\u001b[0m\u001b[1;31m]\u001b[0m\u001b[34m: \u001b[0m\u001b[34m        \u001b[0m\u001b[34mA specific FabricAdmin object at index m for the nth CertificateAuthority \u001b[0m\n",
       "\u001b[34minstance.\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">Default CHIP Device Controller </span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">(</span><span style=\"color: #000080; text-decoration-color: #000080\">NodeId: </span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">112233</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">)</span><span style=\"color: #000080; text-decoration-color: #000080\">: has been initialized to manage </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">caList[</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">0</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">].adminList[</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">0</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">]</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> (FabricId = </span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">1</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">), and is available as </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">devCtrl</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n",
       "\n",
       "\u001b[34mDefault CHIP Device Controller \u001b[0m\u001b[1;34m(\u001b[0m\u001b[34mNodeId: \u001b[0m\u001b[1;34m112233\u001b[0m\u001b[1;34m)\u001b[0m\u001b[34m: has been initialized to manage \u001b[0m\u001b[1;31mcaList\u001b[0m\u001b[1;31m[\u001b[0m\u001b[1;31m0\u001b[0m\u001b[1;31m]\u001b[0m\u001b[1;31m.adminList\u001b[0m\u001b[1;31m[\u001b[0m\u001b[1;31m0\u001b[0m\u001b[1;31m]\u001b[0m\u001b[1;34m \u001b[0m\u001b[1;34m(\u001b[0m\u001b[1;34mFabricId = \u001b[0m\n",
       "\u001b[1;34m1\u001b[0m\u001b[1;34m)\u001b[0m\u001b[1;34m, and is available as \u001b[0m\u001b[1;31mdevCtrl\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%reset -f\n",
    "import importlib.util\n",
    "spec = importlib.util.find_spec('matter.ReplStartup')\n",
    "%run {spec.origin} --storage-path /tmp/repl.json"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "04152051-9b58-4a12-a92c-a01db33e38ad",
   "metadata": {},
   "source": [
    "## Help\n",
    "\n",
    "To get help for the various classes and their respective methods, run:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "b36f41dd-d5e2-447e-a9a4-f1eab7d92bec",
   "metadata": {
    "scrolled": true,
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #000080; text-decoration-color: #000080\">╭────────────────────────────── </span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">class</span><span style=\"color: #000000; text-decoration-color: #000000\"> </span><span style=\"color: #008000; text-decoration-color: #008000\">'matter.ChipDeviceCtrl.ChipDeviceController'</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">&gt;</span><span style=\"color: #000080; text-decoration-color: #000080\"> ───────────────────────────────╮</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">The ChipDeviceCommissioner binding, named as ChipDeviceController</span>                                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">TODO: This class contains DEPRECATED functions, we should update the test scripts to avoid the usage of those </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">functions.</span>                                                                                                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">matter.ChipDeviceCtrl.ChipDeviceController</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x78e55c7c3fa0</span><span style=\"font-weight: bold\">&gt;</span>                                         <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                           <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">activeList</span> = <span style=\"font-weight: bold\">{</span>                                                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                            <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">matter.ChipDeviceCtrl.ChipDeviceController</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x78e55c7c3fa0</span><span style=\"font-weight: bold\">&gt;</span>                                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"font-weight: bold\">}</span>                                                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                              <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">caIndex</span> = <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>                                                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                              <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">devCtrl</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">c_void_p</span><span style=\"font-weight: bold\">(</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">132925546862080</span><span style=\"font-weight: bold\">)</span>                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                          <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">fabricAdmin</span> = <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">matter.FabricAdmin.FabricAdmin</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x78e55c7c3be0</span><span style=\"font-weight: bold\">&gt;</span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                             <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">fabricId</span> = <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>                                                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                             <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">isActive</span> = <span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span>                                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                 <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">name</span> = <span style=\"color: #008000; text-decoration-color: #008000\">'caIndex(1)/fabricId(0x0000000000000001)/nodeId(0x00000…</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                               <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">nodeId</span> = <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">112233</span>                                                   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                      <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">pairingDelegate</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">c_void_p</span><span style=\"font-weight: bold\">(</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">132925546882384</span><span style=\"font-weight: bold\">)</span>                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                   <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">cbHandleCommissioningCompleteFunct</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">cbHandleCommissioningCompleteFunct</span><span style=\"font-weight: bold\">(</span><span style=\"color: #808000; text-decoration-color: #808000\">...</span><span style=\"font-weight: bold\">)</span>              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                    <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">cbHandleDeviceUnpairCompleteFunct</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">cbHandleDeviceUnpairCompleteFunct</span><span style=\"font-weight: bold\">(</span><span style=\"color: #808000; text-decoration-color: #808000\">...</span><span style=\"font-weight: bold\">)</span>               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                             <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">cbHandleFabricCheckFunct</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">cbHandleFabricCheckFunct</span><span style=\"font-weight: bold\">(</span><span style=\"color: #808000; text-decoration-color: #808000\">...</span><span style=\"font-weight: bold\">)</span>                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                      <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">cbHandleOpenWindowCompleteFunct</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">cbHandleOpenWindowCompleteFunct</span><span style=\"font-weight: bold\">(</span><span style=\"color: #808000; text-decoration-color: #808000\">...</span><span style=\"font-weight: bold\">)</span>                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>               <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">cbHandlePASEEstablishmentCompleteFunct</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">cbHandlePASEEstablishmentCompleteFunct</span><span style=\"font-weight: bold\">(</span><span style=\"color: #808000; text-decoration-color: #808000\">...</span><span style=\"font-weight: bold\">)</span>          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                        <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CheckIsActive</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CheckIsActive</span><span style=\"font-weight: bold\">()</span>:                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                 <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CheckStageSuccessful</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CheckStageSuccessful</span><span style=\"font-weight: bold\">(</span>stage: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"font-weight: bold\">)</span>:                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                       <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CheckTestCommissionerCallbacks</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CheckTestCommissionerCallbacks</span><span style=\"font-weight: bold\">()</span>:                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                  <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CheckTestCommissionerPaseConnection</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CheckTestCommissionerPaseConnection</span><span style=\"font-weight: bold\">(</span>nodeid<span style=\"font-weight: bold\">)</span>:         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                   <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CloseBLEConnection</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CloseBLEConnection</span><span style=\"font-weight: bold\">()</span>:                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                         <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CloseSession</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CloseSession</span><span style=\"font-weight: bold\">(</span>nodeid<span style=\"font-weight: bold\">)</span>:                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                           <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">Commission</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">Commission</span><span style=\"font-weight: bold\">(</span>nodeid<span style=\"font-weight: bold\">)</span> -&gt; <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>:                   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Start the auto-commissioning process on a node after </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">establishing a PASE connection.</span>                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">This function is intended to be used in conjunction with</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">`EstablishPASESessionBLE` or</span>                             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">`EstablishPASESessionIP`. It can be called either before</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">or after the DevicePairingDelegate</span>                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">receives the OnPairingComplete call. Commissioners that </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">want to perform simple</span>                                   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">auto-commissioning should use the supplied </span>              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">\"CommissionWithCode\"</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> function, which will</span>                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">establish the PASE connection and commission </span>            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">automatically.</span>                                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Raises a ChipStackError on failure.</span>                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - Effective Node ID of the device </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">as defined by the</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">assigned NOC</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span>                                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                          <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CommissioningWindowPasscode</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">class </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CommissioningWindowPasscode</span><span style=\"font-weight: bold\">(</span>value, <span style=\"color: #808000; text-decoration-color: #808000\">names</span>=<span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, *,  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #808000; text-decoration-color: #808000\">module</span>=<span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, <span style=\"color: #808000; text-decoration-color: #808000\">qualname</span>=<span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, <span style=\"color: #808000; text-decoration-color: #808000\">type</span>=<span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, <span style=\"color: #808000; text-decoration-color: #808000\">start</span>=<span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">An </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">enumeration.</span>                                             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                         <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CommissionIP</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CommissionIP</span><span style=\"font-weight: bold\">(</span>ipaddr: <span style=\"color: #008000; text-decoration-color: #008000\">'str'</span>, setupPinCode:      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"font-weight: bold\">)</span> -&gt; <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>:                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">DEPRECATED, DO NOT USE! Use `CommissionOnNetwork` or </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">`CommissionWithCode`</span>                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Raises a ChipStackError on failure.</span>                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - Effective Node ID of the device </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">as defined by the</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">assigned NOC</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span>                                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                  <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CommissionOnNetwork</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CommissionOnNetwork</span><span style=\"font-weight: bold\">(</span>nodeId: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>,             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        setupPinCode: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, filterType: <span style=\"color: #008000; text-decoration-color: #008000\">'DiscoveryFilterType'</span> = <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">FilterType.NONE:</span><span style=\"color: #000000; text-decoration-color: #000000\"> </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"color: #000000; text-decoration-color: #000000\">&gt;, filter: </span><span style=\"color: #008000; text-decoration-color: #008000\">'typing.Any'</span><span style=\"color: #000000; text-decoration-color: #000000\"> = </span><span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span><span style=\"color: #000000; text-decoration-color: #000000\">, </span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #000000; text-decoration-color: #000000\">discoveryTimeoutMsec: </span><span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"color: #000000; text-decoration-color: #000000\"> = </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">30000</span><span style=\"color: #000000; text-decoration-color: #000000; font-weight: bold\">)</span><span style=\"color: #000000; text-decoration-color: #000000\"> -</span><span style=\"font-weight: bold\">&gt;</span> <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>:           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Does the routine for OnNetworkCommissioning, with a </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">filter for mDNS discovery.</span>                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Supported filters are:</span>                                   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    DiscoveryFilterType.NONE</span>                             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    DiscoveryFilterType.SHORT_DISCRIMINATOR</span>              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    DiscoveryFilterType.LONG_DISCRIMINATOR</span>               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    DiscoveryFilterType.VENDOR_ID</span>                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    DiscoveryFilterType.DEVICE_TYPE</span>                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    DiscoveryFilterType.COMMISSIONING_MODE</span>               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    DiscoveryFilterType.INSTANCE_NAME</span>                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    DiscoveryFilterType.COMMISSIONER</span>                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    DiscoveryFilterType.COMPRESSED_FABRIC_ID</span>             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">The filter can be an integer, a string or </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-style: italic\">None</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> depending</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">on the actual type of selected filter.</span>                   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Raises a ChipStackError on failure.</span>                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - Effective Node ID of the device </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">as defined by the</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">assigned NOC</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span>                                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                     <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CommissionThread</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CommissionThread</span><span style=\"font-weight: bold\">(</span>discriminator, setupPinCode,  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        nodeId, threadOperationalDataset: <span style=\"color: #008000; text-decoration-color: #008000\">'bytes'</span>,               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        isShortDiscriminator: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> = <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span><span style=\"font-weight: bold\">)</span> -&gt; <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>:          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Commissions a Thread device over BLE</span>                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                       <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CommissionWiFi</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CommissionWiFi</span><span style=\"font-weight: bold\">(</span>discriminator, setupPinCode,    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        nodeId, ssid: <span style=\"color: #008000; text-decoration-color: #008000\">'str'</span>, credentials: <span style=\"color: #008000; text-decoration-color: #008000\">'str'</span>,                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        isShortDiscriminator: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> = <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span><span style=\"font-weight: bold\">)</span> -&gt; <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>:          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Commissions a Wi-Fi device over BLE.</span>                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                   <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CommissionWithCode</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CommissionWithCode</span><span style=\"font-weight: bold\">(</span>setupPayload: <span style=\"color: #008000; text-decoration-color: #008000\">'str'</span>,        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, discoveryType: <span style=\"color: #008000; text-decoration-color: #008000\">'DiscoveryType'</span> =          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">DiscoveryType.DISCOVERY_ALL:</span><span style=\"color: #000000; text-decoration-color: #000000\"> </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2</span><span style=\"color: #000000; text-decoration-color: #000000\">&gt;</span><span style=\"color: #000000; text-decoration-color: #000000; font-weight: bold\">)</span><span style=\"color: #000000; text-decoration-color: #000000\"> -</span><span style=\"font-weight: bold\">&gt;</span> <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>:              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Commission with the given nodeid from the setupPayload.</span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    setupPayload may be a QR or manual code.</span>             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    Raises a ChipStackError on failure.</span>                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - Effective Node ID of the device </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">as defined by the</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">assigned NOC</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span>                                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                              <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ComputeRoundTripTimeout</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ComputeRoundTripTimeout</span><span style=\"font-weight: bold\">(</span>nodeid,                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        upperLayerProcessingTimeoutMs: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span> = <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">)</span>:               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns a computed timeout value based on the round-trip</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">time it takes for the peer at the other end of the </span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">session to</span>                                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">receive a message, process it and send it back. This is </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">computed based on the session type, the type of </span>         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">transport,</span>                                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">sleepy characteristics of the target and a </span>              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">caller-provided value for the time it takes to process a</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">message</span>                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">at the upper layer on the target For group sessions.</span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">This will result in a session being established if one </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">wasn't already.</span>                                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                           <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ConnectBLE</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ConnectBLE</span><span style=\"font-weight: bold\">(</span>discriminator: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, setupPinCode: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, isShortDiscriminator: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> =     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span><span style=\"font-weight: bold\">)</span> -&gt; <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>:                                         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Connect to a BLE device using the given discriminator </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">and setup pin code.</span>                                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - Effective Node ID of the device </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">as defined by the</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">assigned NOC</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span>                                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                     <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CreateManualCode</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CreateManualCode</span><span style=\"font-weight: bold\">(</span>discriminator: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, passcode:     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"font-weight: bold\">)</span> -&gt; <span style=\"color: #008000; text-decoration-color: #008000\">'str'</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Creates a standard flow manual code </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">from the given discriminator and passcode.</span>               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                               <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">DisableICDRegistration</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">DisableICDRegistration</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Disables ICD registration.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                          <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">DiscoverCommissionableNodes</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">DiscoverCommissionableNodes</span><span style=\"font-weight: bold\">(</span>filterType:        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'discovery.FilterType'</span> = <span style=\"font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">FilterType.NONE:</span><span style=\"color: #000000; text-decoration-color: #000000\"> </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"color: #000000; text-decoration-color: #000000\">&gt;, filter: </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Any'</span><span style=\"color: #000000; text-decoration-color: #000000\"> = </span><span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span><span style=\"color: #000000; text-decoration-color: #000000\">, stopOnFirst: </span><span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span><span style=\"color: #000000; text-decoration-color: #000000\"> = </span><span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span><span style=\"color: #000000; text-decoration-color: #000000\">, </span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #000000; text-decoration-color: #000000\">timeoutSecond: </span><span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"color: #000000; text-decoration-color: #000000\"> = </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">5</span><span style=\"color: #000000; text-decoration-color: #000000; font-weight: bold\">)</span><span style=\"color: #000000; text-decoration-color: #000000\"> -</span><span style=\"font-weight: bold\">&gt;</span> <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Union[None, </span>        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">CommissionableNode, typing.List[CommissionableNode]]'</span>:   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Discover commissionable nodes via DNS-SD with specified </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">filters.</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Supported filters are:</span>                                   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    discovery.FilterType.NONE</span>                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    discovery.FilterType.SHORT_DISCRIMINATOR</span>             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    discovery.FilterType.LONG_DISCRIMINATOR</span>              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    discovery.FilterType.VENDOR_ID</span>                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    discovery.FilterType.DEVICE_TYPE</span>                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    discovery.FilterType.COMMISSIONING_MODE</span>              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    discovery.FilterType.INSTANCE_NAME</span>                   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    discovery.FilterType.COMMISSIONER</span>                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    discovery.FilterType.COMPRESSED_FABRIC_ID</span>            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">This function will always return a list of </span>              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">CommissionableDevice. When stopOnFirst is set,</span>           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">this function will return when at least one device is </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">discovered or on timeout.</span>                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">EnableICDRegistration</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">EnableICDRegistration</span><span style=\"font-weight: bold\">(</span>parameters:                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'ICDRegistrationParameters'</span><span style=\"font-weight: bold\">)</span>:                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Enables ICD registration for the following commissioning</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">session.</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Args:</span>                                                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    parameters: A ICDRegistrationParameters for the </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">parameters used for ICD registration, or </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-style: italic\">None</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> for </span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">default arguments.</span>                                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                 <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">EstablishPASESession</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">EstablishPASESession</span><span style=\"font-weight: bold\">(</span>setUpCode: <span style=\"color: #008000; text-decoration-color: #008000\">'str'</span>, nodeid: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"font-weight: bold\">)</span> -&gt; <span style=\"color: #008000; text-decoration-color: #008000\">'None'</span>:                                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                              <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">EstablishPASESessionBLE</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">EstablishPASESessionBLE</span><span style=\"font-weight: bold\">(</span>setupPinCode: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>,   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        discriminator: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"font-weight: bold\">)</span> -&gt; <span style=\"color: #008000; text-decoration-color: #008000\">'None'</span>:          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                               <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">EstablishPASESessionIP</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">EstablishPASESessionIP</span><span style=\"font-weight: bold\">(</span>ipaddr: <span style=\"color: #008000; text-decoration-color: #008000\">'str'</span>,          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        setupPinCode: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, port: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span> = <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">)</span> -&gt;  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'None'</span>:                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                       <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ExpireSessions</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ExpireSessions</span><span style=\"font-weight: bold\">(</span>nodeid<span style=\"font-weight: bold\">)</span>:                              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Close all sessions with `nodeid` </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">if any existed</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> so </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">that sessions get re-established.</span>                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">This is needed to properly handle operations that </span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">invalidate a node's state, such as</span>                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">UpdateNOC.</span>                                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">WARNING: ONLY CALL THIS IF YOU UNDERSTAND THE </span>           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">SIDE-EFFECTS</span>                                             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                           <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">FindOrEstablishPASESession</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">FindOrEstablishPASESession</span><span style=\"font-weight: bold\">(</span>setupCode: <span style=\"color: #008000; text-decoration-color: #008000\">'str'</span>,   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, timeoutMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span><span style=\"font-weight: bold\">)</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        -&gt; <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[DeviceProxyWrapper]'</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns </span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">CommissioneeDeviceProxy if we can find or establish a </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">PASE connection to the specified device</span>                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                    <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GenerateICDRegistrationParameters</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GenerateICDRegistrationParameters</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Generates ICD </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">registration parameters for this controller.</span>             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                    <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetAddressAndPort</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetAddressAndPort</span><span style=\"font-weight: bold\">(</span>nodeid<span style=\"font-weight: bold\">)</span>:                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                    <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetClusterHandler</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetClusterHandler</span><span style=\"font-weight: bold\">()</span>:                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetCompressedFabricId</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetCompressedFabricId</span><span style=\"font-weight: bold\">()</span>:                             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                   <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetConnectedDevice</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetConnectedDevice</span><span style=\"font-weight: bold\">(</span>nodeid, allowPASE: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> = <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span>, timeoutMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        payloadCapability: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span> = <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">)</span>:                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Gets an OperationalDeviceProxy or </span>                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">CommissioneeDeviceProxy for the specified Node.</span>          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">nodeId: Target's Node ID</span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">allowPASE: Get a device proxy of a device being </span>         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">commissioned.</span>                                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">timeoutMs: Timeout for a timed invoke request. Omit or </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">set to </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'None'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> to indicate a non-timed request.</span>           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - DeviceProxyWrapper on success</span>                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                               <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetConnectedDeviceSync</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetConnectedDeviceSync</span><span style=\"font-weight: bold\">(</span>nodeid, <span style=\"color: #808000; text-decoration-color: #808000\">allowPASE</span>=<span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span>,       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        timeoutMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        payloadCapability: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span> = <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">)</span>:                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Gets an OperationalDeviceProxy or </span>                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">CommissioneeDeviceProxy for the specified Node.</span>          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">nodeId: Target's Node ID</span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">allowPASE: Get a device proxy of a device being </span>         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">commissioned.</span>                                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">timeoutMs: Timeout for a timed invoke request. Omit or </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">set to </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'None'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> to indicate a non-timed request.</span>           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - DeviceProxyWrapper on success</span>                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                 <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetDiscoveredDevices</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetDiscoveredDevices</span><span style=\"font-weight: bold\">()</span>:                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                 <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetFabricCheckResult</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetFabricCheckResult</span><span style=\"font-weight: bold\">()</span> -&gt; <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns the fabric </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">check result if SetCheckMatchingFabric was used.</span>         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                  <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetFabricIdInternal</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetFabricIdInternal</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Get the fabric ID from the </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">object. Only used to validate cached value from </span>         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">property.</span>                                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                               <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetFabricIndexInternal</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetFabricIndexInternal</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Get the fabric index from </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">the object. Only used to validate cached value from </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">property.</span>                                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                             <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetIPForDiscoveredDevice</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetIPForDiscoveredDevice</span><span style=\"font-weight: bold\">(</span>idx, addrStr, length<span style=\"font-weight: bold\">)</span>:      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                    <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetNodeIdInternal</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetNodeIdInternal</span><span style=\"font-weight: bold\">()</span> -&gt; <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Get the node ID from </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">the object. Only used to validate cached value from </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">property.</span>                                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                           <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetRemoteSessionParameters</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetRemoteSessionParameters</span><span style=\"font-weight: bold\">(</span>nodeid<span style=\"font-weight: bold\">)</span> -&gt;                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[SessionParameters]'</span>:                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns the SessionParameters of reported by the remote </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">node associated with `nodeid`.</span>                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">If there is some error in getting SessionParameters </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-style: italic\">None</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">is returned.</span>                                             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">This will result in a session being established if one </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">wasn't already established.</span>                              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                              <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetTestCommissionerUsed</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetTestCommissionerUsed</span><span style=\"font-weight: bold\">()</span>:                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                 <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">InitGroupTestingData</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">InitGroupTestingData</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Populates the Device </span>        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Controller's GroupDataProvider with known test group </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">info and keys.</span>                                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                          <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">IsConnected</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">IsConnected</span><span style=\"font-weight: bold\">()</span>:                                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                        <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">IssueNOCChain</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">IssueNOCChain</span><span style=\"font-weight: bold\">(</span>csr:                             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'Clusters.OperationalCredentials.Commands.CSRResponse'</span>,  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        nodeId: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"font-weight: bold\">)</span>:                                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Issue an NOC chain using the associated </span>                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">OperationalCredentialsDelegate.</span>                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">The NOC chain will be provided in TLV cert format.</span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                     <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">NOCChainCallback</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">NOCChainCallback</span><span style=\"font-weight: bold\">(</span>nocChain<span style=\"font-weight: bold\">)</span>:                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                              <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">OpenCommissioningWindow</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">OpenCommissioningWindow</span><span style=\"font-weight: bold\">(</span>nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>,         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        timeout: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, iteration: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, discriminator: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>,  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        option: <span style=\"color: #008000; text-decoration-color: #008000\">'CommissioningWindowPasscode'</span><span style=\"font-weight: bold\">)</span> -&gt;                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'CommissioningParameters'</span>:                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Opens a commissioning window on the device with the </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">given nodeid.</span>                                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">nodeid:        Node id of the device</span>                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">timeout:       Command timeout</span>                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">iteration:     The PAKE iteration count associated with </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">the PAKE Passcode ID and ephemeral</span>                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">               PAKE passcode verifier to be used for </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">this commissioning. Valid range: </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1000</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> - </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">100000</span>           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">               Ignored if option == </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">0</span>                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">discriminator: The long discriminator for the DNS-SD </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">advertisement. Valid range: </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">0</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">-</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">4095</span>                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">               Ignored if option == </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">0</span>                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">option:        </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">0</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> = kOriginalSetupCode</span>                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">               </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> = kTokenWithRandomPIN</span>                   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns CommissioningParameters</span>                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                 <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">Read</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">Read</span><span style=\"font-weight: bold\">(</span>nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, attributes:                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[typing.List[typing.Union[None, </span>         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[int], </span>                                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[typing.Type[ClusterObjects.Cluster]], </span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[typing.Type[ClusterObjects.ClusterAttribut…</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[int, typing.Type[ClusterObjects.Cluster]], </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[int, </span>                                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Type[ClusterObjects.ClusterAttributeDescriptor]],</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">ClusterAttribute.AttributePath]]]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        dataVersionFilters:                                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[typing.List[typing.Tuple[int, </span>          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Type[ClusterObjects.Cluster], int]]]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        events: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[typing.List[typing.Union[None, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[str, int], typing.Tuple[int, int], </span>         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[typing.Type[ClusterObjects.Cluster], int], </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[typing.Type[ClusterObjects.ClusterEvent], </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">int], typing.Tuple[int, </span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Type[ClusterObjects.Cluster], int], </span>              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[int, </span>                                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Type[ClusterObjects.ClusterEvent], int]]]]'</span> =     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, eventNumberFilter: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        returnClusterObject: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> = <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>, reportInterval:     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[typing.Tuple[int, int]]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        fabricFiltered: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> = <span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span>, keepSubscriptions: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        = <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>, autoResubscribe: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> = <span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span>,                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        payloadCapability: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span> = <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">)</span>:                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Read a list of attributes and/or events from a target </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">node</span>                                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">nodeId: Target's Node ID</span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">attributes: A list of tuples of varying types depending </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">on the type of read being requested:</span>                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, Clusters.ClusterA.AttributeA</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:   Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= specific,    Cluster = specific,   Attribute = </span>        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">specific</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, Clusters.ClusterA</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:              Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= specific,    Cluster = specific,   Attribute = *</span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Clusters.ClusterA.AttributeA</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:             Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= *,           Cluster = specific,   Attribute = </span>        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">specific</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    endpoint:                                   Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= specific,    Cluster = *,          Attribute = *</span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    Clusters.ClusterA:                          Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= *,           Cluster = specific,   Attribute = *</span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'*'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> or </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">()</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:                                  Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= *,           Cluster = *,          Attribute = *</span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    The cluster and attributes specified above are to be</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">selected from the generated cluster objects.</span>             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    e.g.</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">        </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadAttribute</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> -- case </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">4</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> above.</span>        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">        </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadAttribute</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> Clusters.BasicInformation </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">-- case </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">5</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> above.</span>                                         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">        </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadAttribute</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span>                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Clusters.BasicInformation.Attributes.Location </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> -- </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">case </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> above.</span>                                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    An AttributePath can also be specified directly by </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">matter.cluster.Attribute.AttributePath</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #bfbf7f; text-decoration-color: #bfbf7f\">...</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)]</span>              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">dataVersionFilters: A list of tuples of </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, </span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">cluster, data version</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">.</span>                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">events: A list of tuples of varying types depending on </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">the type of read being requested:</span>                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, Clusters.ClusterA.EventA, urgent</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:       </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = specific,</span>                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                                                       …</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= specific,   Event = specific, Urgent = </span><span style=\"color: #7fff7f; text-decoration-color: #7fff7f; font-style: italic\">True</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">/</span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, Clusters.ClusterA, urgent</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:              </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = specific,</span>                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                                                       …</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= specific,   Event = *, Urgent = </span><span style=\"color: #7fff7f; text-decoration-color: #7fff7f; font-style: italic\">True</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">/</span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span>             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Clusters.ClusterA.EventA, urgent</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:                 </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = *,</span>                                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                                                       …</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= specific,   Event = specific, Urgent = </span><span style=\"color: #7fff7f; text-decoration-color: #7fff7f; font-style: italic\">True</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">/</span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    endpoint:                                   Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= specific,    Cluster = *,          Event = *, Urgent =</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7fff7f; text-decoration-color: #7fff7f; font-style: italic\">True</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">/</span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span>                                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    Clusters.ClusterA:                          Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= *,          Cluster = specific,    Event = *, Urgent =</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7fff7f; text-decoration-color: #7fff7f; font-style: italic\">True</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">/</span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span>                                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'*'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> or </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">()</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:                                  Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= *,          Cluster = *,          Event = *, Urgent = </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7fff7f; text-decoration-color: #7fff7f; font-style: italic\">True</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">/</span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span>                                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">eventNumberFilter: Optional minimum event number filter.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">returnClusterObject: This returns the data as </span>           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">consolidated cluster objects, with all attributes for a </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">cluster inside</span>                                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                     a single cluster-wide cluster </span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">object.</span>                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">reportInterval: A tuple of two int-s for </span>                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">MinIntervalFloor, MaxIntervalCeiling</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">. Used by </span>         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">establishing subscriptions.</span>                              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    When not provided, a read request will be sent.</span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">fabricFiltered: If </span><span style=\"color: #7fff7f; text-decoration-color: #7fff7f; font-style: italic\">True</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">default</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, the read/subscribe is</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">fabric-filtered and will only see things associated with</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">the fabric</span>                                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    of the reader/subscriber. Relevant for attributes </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">with fabric-scoped data.</span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">keepSubscriptions: Keep existing subscriptions. If set </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">to </span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, existing subscriptions with this node will get</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">cancelled</span>                                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    and a new one gets setup.</span>                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">autoResubscribe: Automatically resubscribe to the </span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">subscription if subscription is lost. The automatic </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">re-subscription only</span>                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    applies if the subscription establishes on first </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">try. If the first subscription establishment attempt </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">fails the function</span>                                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    returns right away.</span>                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - AsyncReadTransaction.ReadResponse. Please see </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">ReadAttribute and ReadEvent for examples of how to </span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">access data.</span>                                             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Raises:</span>                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - InteractionModelError </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">matter.interaction_model</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> on </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">error</span>                                                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                        <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ReadAttribute</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ReadAttribute</span><span style=\"font-weight: bold\">(</span>nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, attributes:       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[typing.List[typing.Union[None, </span>         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[int], </span>                                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[typing.Type[ClusterObjects.Cluster]], </span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[typing.Type[ClusterObjects.ClusterAttribut…</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[int, typing.Type[ClusterObjects.Cluster]], </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[int, </span>                                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Type[ClusterObjects.ClusterAttributeDescriptor]],</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">ClusterAttribute.AttributePath]]]'</span>, dataVersionFilters:  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[typing.List[typing.Tuple[int, </span>          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Type[ClusterObjects.Cluster], int]]]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        returnClusterObject: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> = <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>, reportInterval:     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[typing.Tuple[int, int]]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        fabricFiltered: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> = <span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span>, keepSubscriptions: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        = <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>, autoResubscribe: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> = <span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span>,                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        payloadCapability: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span> = <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">)</span>:                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Read a list of attributes from a target node, this is a </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">wrapper of </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">DeviceController.Read</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">()</span>                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">nodeId: Target's Node ID</span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">attributes: A list of tuples of varying types depending </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">on the type of read being requested:</span>                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, Clusters.ClusterA.AttributeA</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:   Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= specific,    Cluster = specific,   Attribute = </span>        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">specific</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, Clusters.ClusterA</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:              Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= specific,    Cluster = specific,   Attribute = *</span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Clusters.ClusterA.AttributeA</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:             Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= *,           Cluster = specific,   Attribute = </span>        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">specific</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    endpoint:                                   Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= specific,    Cluster = *,          Attribute = *</span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    Clusters.ClusterA:                          Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= *,           Cluster = specific,   Attribute = *</span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'*'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> or </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">()</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:                                  Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= *,           Cluster = *,          Attribute = *</span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    The cluster and attributes specified above are to be</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">selected from the generated cluster objects.</span>             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    e.g.</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">        </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadAttribute</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> -- case </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">4</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> above.</span>        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">        </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadAttribute</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> Clusters.BasicInformation </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">-- case </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">5</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> above.</span>                                         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">        </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadAttribute</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span>                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Clusters.BasicInformation.Attributes.Location </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> -- </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">case </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> above.</span>                                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    An AttributePath can also be specified directly by </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">matter.cluster.Attribute.AttributePath</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #bfbf7f; text-decoration-color: #bfbf7f\">...</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)]</span>              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">returnClusterObject: This returns the data as </span>           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">consolidated cluster objects, with all attributes for a </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">cluster inside</span>                                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                     a single cluster-wide cluster </span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">object.</span>                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">reportInterval: A tuple of two int-s for </span>                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">MinIntervalFloor, MaxIntervalCeiling</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">. Used by </span>         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">establishing subscriptions.</span>                              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    When not provided, a read request will be sent.</span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">fabricFiltered: If </span><span style=\"color: #7fff7f; text-decoration-color: #7fff7f; font-style: italic\">True</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">default</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, the read/subscribe is</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">fabric-filtered and will only see things associated with</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">the fabric</span>                                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    of the reader/subscriber. Relevant for attributes </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">with fabric-scoped data.</span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">keepSubscriptions: Keep existing subscriptions. If set </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">to </span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, existing subscriptions with this node will get</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">cancelled</span>                                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    and a new one gets setup.</span>                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">autoResubscribe: Automatically resubscribe to the </span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">subscription if subscription is lost. The automatic </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">re-subscription only</span>                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    applies if the subscription establishes on first </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">try. If the first subscription establishment attempt </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">fails the function</span>                                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    returns right away.</span>                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - subscription request: </span>                             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">ClusterAttribute.SubscriptionTransaction</span>                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                            To get notified on attribute</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">change use SetAttributeUpdateCallback on the returned</span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                            SubscriptionTransaction. </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">This is used to set a callback function, which is a </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">callable of</span>                                              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                            type </span>                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Callable</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">TypedAttributePath, SubscriptionTransaction</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-style: italic\">None</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span>                                                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                            Get the attribute value from</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">the change path using GetAttribute on the </span>               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">SubscriptionTransaction</span>                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                            You can await changes in the</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">main loop using a trigger mechanism from the callback.</span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                            ex. queue.SimpleQueue</span>        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - read request: </span>                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">AsyncReadTransaction.ReadResponse.attributes.</span>            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                    This is of type </span>                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">AttributeCache.attributeCache </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Attribute.py</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">,</span>            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                    which is a dict mapping endpoints to</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">a list of Cluster </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">ClusterObjects.py</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> classes</span>            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">dict</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">int, List</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Cluster</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]])</span>           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                    Access as </span>                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">returned_object</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint_id</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">][&lt;</span><span style=\"color: #ff7fff; text-decoration-color: #ff7fff; font-weight: bold\">Cluster</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> class&gt;</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">][</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">&lt;Attribute</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">class</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">&gt;]</span>                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                    Ex. To access the OnTime attribute </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">from the OnOff cluster on endpoint </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span>                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                    returned_object</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">][</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Clusters.OnOff</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">][</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">…</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Raises:</span>                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - InteractionModelError </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">matter.interaction_model</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> on </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">error</span>                                                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                            <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ReadEvent</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ReadEvent</span><span style=\"font-weight: bold\">(</span>nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, events:               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.List[typing.Union[None, typing.Tuple[str, int], </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[int, int], </span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[typing.Type[ClusterObjects.Cluster], int], </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[typing.Type[ClusterObjects.ClusterEvent], </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">int], typing.Tuple[int, </span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Type[ClusterObjects.Cluster], int], </span>              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Tuple[int, </span>                                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">typing.Type[ClusterObjects.ClusterEvent], int]]]'</span>,       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        eventNumberFilter: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        fabricFiltered: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> = <span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span>, reportInterval:           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[typing.Tuple[int, int]]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        keepSubscriptions: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> = <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>, autoResubscribe:      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> = <span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span>, payloadCapability: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span> = <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">)</span>:            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Read a list of events from a target node, this is a </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">wrapper of </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">DeviceController.Read</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">()</span>                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">nodeId: Target's Node ID</span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">events: A list of tuples of varying types depending on </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">the type of read being requested:</span>                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, Clusters.ClusterA.EventA, urgent</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:       </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = specific,</span>                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                                                       …</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= specific,   Event = specific, Urgent = </span><span style=\"color: #7fff7f; text-decoration-color: #7fff7f; font-style: italic\">True</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">/</span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, Clusters.ClusterA, urgent</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:              </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = specific,</span>                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                                                       …</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= specific,   Event = *, Urgent = </span><span style=\"color: #7fff7f; text-decoration-color: #7fff7f; font-style: italic\">True</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">/</span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span>             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Clusters.ClusterA.EventA, urgent</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:                 </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = *,</span>                                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                                                       …</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= specific,   Event = specific, Urgent = </span><span style=\"color: #7fff7f; text-decoration-color: #7fff7f; font-style: italic\">True</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">/</span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    endpoint:                                   Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= specific,    Cluster = *,          Event = *, Urgent =</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7fff7f; text-decoration-color: #7fff7f; font-style: italic\">True</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">/</span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span>                                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    Clusters.ClusterA:                          Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= *,          Cluster = specific,    Event = *, Urgent =</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7fff7f; text-decoration-color: #7fff7f; font-style: italic\">True</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">/</span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span>                                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'*'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> or </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">()</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:                                  Endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">= *,          Cluster = *,          Event = *, Urgent = </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7fff7f; text-decoration-color: #7fff7f; font-style: italic\">True</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">/</span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span>                                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">The cluster and events specified above are to be </span>        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">selected from the generated cluster objects.</span>             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">e.g.</span>                                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadEvent</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> -- case </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">4</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> above.</span>                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadEvent</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> Clusters.BasicInformation </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> -- case</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">5</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> above.</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadEvent</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span>                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Clusters.BasicInformation.Events.Location </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> -- case </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">above.</span>                                                   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">eventNumberFilter: Optional minimum event number filter.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">reportInterval: A tuple of two int-s for </span>                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">MinIntervalFloor, MaxIntervalCeiling</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">. Used by </span>         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">establishing subscriptions.</span>                              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    When not provided, a read request will be sent.</span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">keepSubscriptions: Keep existing subscriptions. If set </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">to </span><span style=\"color: #ff7f7f; text-decoration-color: #ff7f7f; font-style: italic\">False</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, existing subscriptions with this node will get</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">cancelled</span>                                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    and a new one gets setup.</span>                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">autoResubscribe: Automatically resubscribe to the </span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">subscription if subscription is lost. The automatic </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">re-subscription only</span>                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    applies if the subscription establishes on first </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">try. If the first subscription establishment attempt </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">fails the function</span>                                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    returns right away.</span>                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - subscription request: </span>                             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">ClusterAttribute.SubscriptionTransaction</span>                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                            To get notified on event </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">subscriptions, use the SetEventUpdateCallback function </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">on the</span>                                                   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                            returned  </span>                   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">SubscriptionTransaction. This is a callable of type</span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                            Callable</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">EventReadResult, </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">SubscriptionTransaction</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-style: italic\">None</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span>                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                            You can await events using a</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">trigger mechanism in the callback. ex. queue.SimpleQueue</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - read request: </span>                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">AsyncReadTransaction.ReadResponse.events.</span>                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                    This is a List</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">ClusterEvent</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">.</span>        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Raises:</span>                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - InteractionModelError </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">matter.interaction_model</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> on </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">error</span>                                                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                         <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ResetCommissioningParameters</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ResetCommissioningParameters</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Sets the </span>            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">commissioning parameters back to the default values.</span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ResetTestCommissioner</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ResetTestCommissioner</span><span style=\"font-weight: bold\">()</span>:                             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                          <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ResolveNode</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ResolveNode</span><span style=\"font-weight: bold\">(</span>nodeid<span style=\"font-weight: bold\">)</span>:                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                    <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SendBatchCommands</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SendBatchCommands</span><span style=\"font-weight: bold\">(</span>nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, commands:     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.List[ClusterCommand.InvokeRequestInfo]'</span>,         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        timedRequestTimeoutMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        interactionTimeoutMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        busyWaitMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        suppressResponse: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[bool]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        payloadCapability: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span> = <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">)</span>:                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Send a batch of cluster-object encapsulated commands to </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">a node and get returned a future that can be awaited </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">upon to receive</span>                                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">the responses. If a valid responseType is passed in, </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">that will be used to de-serialize the object. If not,</span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">the type will be automatically deduced from the metadata</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">received over the wire.</span>                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">nodeId: Target's Node ID</span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">commands: A list of InvokeRequestInfo containing the </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">commands to invoke.</span>                                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">timedWriteTimeoutMs: Timeout for a timed invoke request.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Omit or set to </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'None'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> to indicate a non-timed request.</span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">interactionTimeoutMs: Overall timeout for the </span>           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">interaction. Omit or set to </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'None'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> to have the SDK </span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">automatically compute the</span>                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                      right timeout value based on </span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">transport characteristics as well as the responsiveness </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">of the target.</span>                                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">busyWaitMs: How long to wait in ms after sending command</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">to device before performing any other operations.</span>        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">suppressResponse: Do not send a response to this action</span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - List of command responses in the same order as </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">what was given in `commands`. The type of the response </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">is defined by the command.</span>                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">              - A value of `</span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-style: italic\">None</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">` indicates success.</span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">              - If only a single command fails, for </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">example with `UNSUPPORTED_COMMAND`, the corresponding </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">index associated with the command will,</span>                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                contain </span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">`interaction_model.Status.UnsupportedCommand`.</span>           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">              - If a command is not responded to by </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">server, command will contain </span>                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">`interaction_model.Status.NoCommandResponse`</span>             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Raises:</span>                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - InteractionModelError if error with sending of </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">InvokeRequestMessage fails as a whole.</span>                   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                          <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SendCommand</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SendCommand</span><span style=\"font-weight: bold\">(</span>nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, endpoint: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>,    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        payload: <span style=\"color: #008000; text-decoration-color: #008000\">'ClusterObjects.ClusterCommand'</span>,                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #808000; text-decoration-color: #808000\">responseType</span>=<span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, timedRequestTimeoutMs:                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, interactionTimeoutMs:     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, busyWaitMs:               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, suppressResponse:         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[bool]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, payloadCapability: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        = <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">)</span>:                                                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Send a cluster-object encapsulated command to a node and</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">get returned a future that can be awaited upon to </span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">receive</span>                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">the response. If a valid responseType is passed in, that</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">will be used to de-serialize the object. If not,</span>         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">the type will be automatically deduced from the metadata</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">received over the wire.</span>                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">timedWriteTimeoutMs: Timeout for a timed invoke request.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Omit or set to </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'None'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> to indicate a non-timed request.</span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">interactionTimeoutMs: Overall timeout for the </span>           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">interaction. Omit or set to </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'None'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> to have the SDK </span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">automatically compute the</span>                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                      right timeout value based on </span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">transport characteristics as well as the responsiveness </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">of the target.</span>                                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - command response. The type of the response is </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">defined by the command.</span>                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Raises:</span>                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - InteractionModelError on error</span>                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                     <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SendGroupCommand</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SendGroupCommand</span><span style=\"font-weight: bold\">(</span>groupid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, payload:            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'ClusterObjects.ClusterCommand'</span>, busyWaitMs:             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span><span style=\"font-weight: bold\">)</span>:                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Send a group cluster-object encapsulated command to a </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">group_id and get returned a future</span>                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">that can be awaited upon to get confirmation command was</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">sent.</span>                                                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-style: italic\">None</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">: responses are not sent to group commands</span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Raises:</span>                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - InteractionModelError on error</span>                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                               <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetCheckMatchingFabric</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetCheckMatchingFabric</span><span style=\"font-weight: bold\">(</span>check: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Instructs the</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">auto-commissioner to perform a matching fabric check </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">before commissioning.</span>                                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                        <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetDefaultNTP</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetDefaultNTP</span><span style=\"font-weight: bold\">(</span>defaultNTP: <span style=\"color: #008000; text-decoration-color: #008000\">'str'</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Set the DefaultNTP</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">to set during commissioning</span>                              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                         <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetDSTOffset</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetDSTOffset</span><span style=\"font-weight: bold\">(</span>offset: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, validStarting: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>,    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        validUntil: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Set the DST offset to set during </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">commissioning. Currently only one DST entry is supported</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                               <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetIpk</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetIpk</span><span style=\"font-weight: bold\">(</span>ipk: <span style=\"color: #008000; text-decoration-color: #008000\">'bytes'</span><span style=\"font-weight: bold\">)</span>:                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                         <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetSkipCommissioningComplete</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span>                                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetSkipCommissioningComplete</span><span style=\"font-weight: bold\">(</span>skipCommissioningComplete:  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Set whether to skip the commissioning complete </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">callback</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetTCAcknowledgements</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetTCAcknowledgements</span><span style=\"font-weight: bold\">(</span>tcAcceptedVersion: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>,      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        tcUserResponse: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Set the TC acknowledgements to </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">set during commissioning</span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>            <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetTestCommissionerPrematureCompleteAfter</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetTestCommissionerPrematureCompleteAfter</span><span style=\"font-weight: bold\">(</span>stage:     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"font-weight: bold\">)</span>:                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>           <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetTestCommissionerSimulateFailureOnReport</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetTestCommissionerSimulateFailureOnReport</span><span style=\"font-weight: bold\">(</span>stage:    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"font-weight: bold\">)</span>:                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>            <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetTestCommissionerSimulateFailureOnStage</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetTestCommissionerSimulateFailureOnStage</span><span style=\"font-weight: bold\">(</span>stage:     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"font-weight: bold\">)</span>:                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                          <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetThreadOperationalDataset</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span>                                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetThreadOperationalDataset</span><span style=\"font-weight: bold\">(</span>threadOperationalDataset<span style=\"font-weight: bold\">)</span>:   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Set the Thread operational dataset to set during </span>        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">commissioning.</span>                                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                          <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetTimeZone</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetTimeZone</span><span style=\"font-weight: bold\">(</span>offset: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, validAt: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, name:     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'str'</span> = <span style=\"color: #008000; text-decoration-color: #008000\">''</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Set the time zone to set during </span>            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">commissioning. Currently only one time zone entry is </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">supported</span>                                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                 <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetTrustedTimeSource</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetTrustedTimeSource</span><span style=\"font-weight: bold\">(</span>nodeId: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, endpoint:        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Set the trusted time source nodeId to set during</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">commissioning. This must be a node on the commissioner </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">fabric.</span>                                                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                   <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetWiFiCredentials</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetWiFiCredentials</span><span style=\"font-weight: bold\">(</span>ssid: <span style=\"color: #008000; text-decoration-color: #008000\">'str'</span>, credentials: <span style=\"color: #008000; text-decoration-color: #008000\">'str'</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Set the Wi-Fi credentials to set during commissioning.</span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                             <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">Shutdown</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">Shutdown</span><span style=\"font-weight: bold\">()</span>:                                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Shuts down this controller and reclaims any used </span>        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">resources, including the bound</span>                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">C++ constructor instance in the SDK.</span>                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                          <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ShutdownAll</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ShutdownAll</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Shut down all active controllers and </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">reclaim any used resources.</span>                              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                      <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">TestOnlyPrepareToReceiveBdxData</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">TestOnlyPrepareToReceiveBdxData</span><span style=\"font-weight: bold\">()</span> -&gt;                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'asyncio.Future'</span>:                                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Sets up the system to expect a node to initiate a BDX </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">transfer. The transfer will send data here.</span>              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - a future that will yield a BdxTransfer with the </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">init message from the transfer.</span>                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                         <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">TestOnlyPrepareToSendBdxData</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">TestOnlyPrepareToSendBdxData</span><span style=\"font-weight: bold\">(</span>data: <span style=\"color: #008000; text-decoration-color: #008000\">'bytes'</span><span style=\"font-weight: bold\">)</span> -&gt;       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'asyncio.Future'</span>:                                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Sets up the system to expect a node to initiate a BDX </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">transfer. The transfer will send data to the node.</span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - a future that will yield a BdxTransfer with the </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">init message from the transfer.</span>                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                            <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">TestOnlySendBatchCommands</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">TestOnlySendBatchCommands</span><span style=\"font-weight: bold\">(</span>nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>,       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        commands:                                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.List[ClusterCommand.InvokeRequestInfo]'</span>,         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        timedRequestTimeoutMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        interactionTimeoutMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        busyWaitMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        suppressResponse: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[bool]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        remoteMaxPathsPerInvoke: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        suppressTimedRequestMessage: <span style=\"color: #008000; text-decoration-color: #008000\">'bool'</span> = <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>,             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        commandRefsOverride: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[typing.List[int]]'</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span><span style=\"font-weight: bold\">)</span>:                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Please see SendBatchCommands for description.</span>            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">TestOnly overridable arguments:</span>                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    remoteMaxPathsPerInvoke: Overrides the number of </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">batch commands we think can be sent to remote node.</span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    suppressTimedRequestMessage: When set to true, we </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">suppress sending Timed Request Message.</span>                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    commandRefsOverride: List of commandRefs to use for </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">each command with the same index in `commands`.</span>          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - TestOnlyBatchCommandResponse</span>                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">TestOnlySendCommandTimedRequestFlagWithNoTimedInvoke</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span>                                               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">TestOnlySendCommandTimedRequestFlagWithNoTimedInvoke</span><span style=\"font-weight: bold\">(</span>no… <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, endpoint: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, payload:                         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'ClusterObjects.ClusterCommand'</span>, <span style=\"color: #808000; text-decoration-color: #808000\">responseType</span>=<span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span><span style=\"font-weight: bold\">)</span>:     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Please see SendCommand for description.</span>                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                         <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">UnpairDevice</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">UnpairDevice</span><span style=\"font-weight: bold\">(</span>nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span><span style=\"font-weight: bold\">)</span> -&gt; <span style=\"color: #008000; text-decoration-color: #008000\">'None'</span>:         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                        <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">WaitForActive</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">WaitForActive</span><span style=\"font-weight: bold\">(</span>nodeid, *, <span style=\"color: #808000; text-decoration-color: #808000\">timeoutSeconds</span>=<span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">30.0</span>,  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #808000; text-decoration-color: #808000\">stayActiveDurationMs</span>=<span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">30000</span><span style=\"font-weight: bold\">)</span>:                             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Waits a LIT ICD device to become active. Will send a </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">StayActive command to the device on active to allow </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">human operations.</span>                                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">nodeId: Node ID of the LID ICD</span>                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">stayActiveDurationMs: The duration in the StayActive </span>    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">command, in milliseconds</span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - StayActiveResponse on success</span>                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                       <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">WriteAttribute</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">WriteAttribute</span><span style=\"font-weight: bold\">(</span>nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, attributes:      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.List[typing.Tuple[int, </span>                          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">ClusterObjects.ClusterAttributeDescriptor]]'</span>,            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        timedRequestTimeoutMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        interactionTimeoutMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        busyWaitMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,               <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        payloadCapability: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span> = <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">)</span>:                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Write a list of attributes on a target node.</span>             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">nodeId: Target's Node ID</span>                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">timedWriteTimeoutMs: Timeout for a timed write request. </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Omit or set to </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'None'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> to indicate a non-timed request.</span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">attributes: A list of tuples of type </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, </span>         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">cluster-object</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:</span>                                         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">interactionTimeoutMs: Overall timeout for the </span>           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">interaction. Omit or set to </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'None'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> to have the SDK </span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">automatically compute the</span>                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">                      right timeout value based on </span>      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">transport characteristics as well as the responsiveness </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">of the target.</span>                                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">E.g</span>                                                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">Clusters.UnitTesting.Attributes.XYZAttribute</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'hello'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">))</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">-- Write </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'hello'</span>                                         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    to the XYZ attribute on the test cluster to endpoint</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span>                                                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Returns:</span>                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    - </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">AttributeStatus</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">list - one for each path</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                  <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">WriteGroupAttribute</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">WriteGroupAttribute</span><span style=\"font-weight: bold\">(</span>groupid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, attributes:      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">'typing.List[typing.Tuple[ClusterObjects.ClusterAttribu…</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #008000; text-decoration-color: #008000\">int]]'</span>, busyWaitMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span><span style=\"font-weight: bold\">)</span>:      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Write a list of attributes on a target group.</span>            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">groupid: Group ID to send write attribute to.</span>            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">attributes: A list of tuples of type </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">cluster-object, </span>   <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">data-version</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">. The data-version can be omitted.</span>          <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">E.g</span>                                                      <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">    </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">Clusters.UnitTesting.Attributes.XYZAttribute</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'hell…</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                        <span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> -- Group Write </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'hello'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> with data version </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span>            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[34m╭─\u001b[0m\u001b[34m─────────────────────────────\u001b[0m\u001b[34m \u001b[0m\u001b[1;34m<\u001b[0m\u001b[1;95mclass\u001b[0m\u001b[39m \u001b[0m\u001b[32m'matter.ChipDeviceCtrl.ChipDeviceController'\u001b[0m\u001b[1;34m>\u001b[0m\u001b[34m \u001b[0m\u001b[34m──────────────────────────────\u001b[0m\u001b[34m─╮\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mThe ChipDeviceCommissioner binding, named as ChipDeviceController\u001b[0m                                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mTODO: This class contains DEPRECATED functions, we should update the test scripts to avoid the usage of those \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mfunctions.\u001b[0m                                                                                                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[32m╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────╮\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[1m<\u001b[0m\u001b[1;95mmatter.ChipDeviceCtrl.ChipDeviceController\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x78e55c7c3fa0\u001b[0m\u001b[1m>\u001b[0m                                         \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                           \u001b[3;33mactiveList\u001b[0m = \u001b[1m{\u001b[0m                                                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                            \u001b[1m<\u001b[0m\u001b[1;95mmatter.ChipDeviceCtrl.ChipDeviceController\u001b[0m\u001b[39m object at \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1;36m0x78e55c7c3fa0\u001b[0m\u001b[1m>\u001b[0m                                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1m}\u001b[0m                                                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                              \u001b[3;33mcaIndex\u001b[0m = \u001b[1;36m1\u001b[0m                                                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                              \u001b[3;33mdevCtrl\u001b[0m = \u001b[1;35mc_void_p\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m132925546862080\u001b[0m\u001b[1m)\u001b[0m                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                          \u001b[3;33mfabricAdmin\u001b[0m = \u001b[1m<\u001b[0m\u001b[1;95mmatter.FabricAdmin.FabricAdmin\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x78e55c7c3be0\u001b[0m\u001b[1m>\u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                             \u001b[3;33mfabricId\u001b[0m = \u001b[1;36m1\u001b[0m                                                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                             \u001b[3;33misActive\u001b[0m = \u001b[3;92mTrue\u001b[0m                                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                 \u001b[3;33mname\u001b[0m = \u001b[32m'caIndex\u001b[0m\u001b[32m(\u001b[0m\u001b[32m1\u001b[0m\u001b[32m)\u001b[0m\u001b[32m/fabricId\u001b[0m\u001b[32m(\u001b[0m\u001b[32m0x0000000000000001\u001b[0m\u001b[32m)\u001b[0m\u001b[32m/nodeId\u001b[0m\u001b[32m(\u001b[0m\u001b[32m0x00000…\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                               \u001b[3;33mnodeId\u001b[0m = \u001b[1;36m112233\u001b[0m                                                   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                      \u001b[3;33mpairingDelegate\u001b[0m = \u001b[1;35mc_void_p\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m132925546882384\u001b[0m\u001b[1m)\u001b[0m                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                   \u001b[3;33mcbHandleCommissioningCompleteFunct\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mcbHandleCommissioningCompleteFunct\u001b[0m\u001b[1m(\u001b[0m\u001b[33m...\u001b[0m\u001b[1m)\u001b[0m              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                    \u001b[3;33mcbHandleDeviceUnpairCompleteFunct\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mcbHandleDeviceUnpairCompleteFunct\u001b[0m\u001b[1m(\u001b[0m\u001b[33m...\u001b[0m\u001b[1m)\u001b[0m               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                             \u001b[3;33mcbHandleFabricCheckFunct\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mcbHandleFabricCheckFunct\u001b[0m\u001b[1m(\u001b[0m\u001b[33m...\u001b[0m\u001b[1m)\u001b[0m                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                      \u001b[3;33mcbHandleOpenWindowCompleteFunct\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mcbHandleOpenWindowCompleteFunct\u001b[0m\u001b[1m(\u001b[0m\u001b[33m...\u001b[0m\u001b[1m)\u001b[0m                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m               \u001b[3;33mcbHandlePASEEstablishmentCompleteFunct\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mcbHandlePASEEstablishmentCompleteFunct\u001b[0m\u001b[1m(\u001b[0m\u001b[33m...\u001b[0m\u001b[1m)\u001b[0m          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                        \u001b[3;33mCheckIsActive\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mCheckIsActive\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m:                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                 \u001b[3;33mCheckStageSuccessful\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mCheckStageSuccessful\u001b[0m\u001b[1m(\u001b[0mstage: \u001b[32m'int'\u001b[0m\u001b[1m)\u001b[0m:                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                       \u001b[3;33mCheckTestCommissionerCallbacks\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mCheckTestCommissionerCallbacks\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m:                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                  \u001b[3;33mCheckTestCommissionerPaseConnection\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mCheckTestCommissionerPaseConnection\u001b[0m\u001b[1m(\u001b[0mnodeid\u001b[1m)\u001b[0m:         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                   \u001b[3;33mCloseBLEConnection\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mCloseBLEConnection\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m:                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                         \u001b[3;33mCloseSession\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mCloseSession\u001b[0m\u001b[1m(\u001b[0mnodeid\u001b[1m)\u001b[0m:                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                           \u001b[3;33mCommission\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mCommission\u001b[0m\u001b[1m(\u001b[0mnodeid\u001b[1m)\u001b[0m -> \u001b[32m'int'\u001b[0m:                   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mStart the auto-commissioning process on a node after \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mestablishing a PASE connection.\u001b[0m                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mThis function is intended to be used in conjunction with\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m`EstablishPASESessionBLE` or\u001b[0m                             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m`EstablishPASESessionIP`. It can be called either before\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mor after the DevicePairingDelegate\u001b[0m                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mreceives the OnPairingComplete call. Commissioners that \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mwant to perform simple\u001b[0m                                   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mauto-commissioning should use the supplied \u001b[0m              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2;32m\"CommissionWithCode\"\u001b[0m\u001b[2m function, which will\u001b[0m                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mestablish the PASE connection and commission \u001b[0m            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mautomatically.\u001b[0m                                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mRaises a ChipStackError on failure.\u001b[0m                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - Effective Node ID of the device \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mas defined by the\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2massigned NOC\u001b[0m\u001b[1;2m)\u001b[0m                                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                          \u001b[3;33mCommissioningWindowPasscode\u001b[0m = \u001b[3;96mclass \u001b[0m\u001b[1;31mCommissioningWindowPasscode\u001b[0m\u001b[1m(\u001b[0mvalue, \u001b[33mnames\u001b[0m=\u001b[3;35mNone\u001b[0m, *,  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[33mmodule\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mqualname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mstart\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mAn \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2menumeration.\u001b[0m                                             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                         \u001b[3;33mCommissionIP\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mCommissionIP\u001b[0m\u001b[1m(\u001b[0mipaddr: \u001b[32m'str'\u001b[0m, setupPinCode:      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'int'\u001b[0m, nodeid: \u001b[32m'int'\u001b[0m\u001b[1m)\u001b[0m -> \u001b[32m'int'\u001b[0m:                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mDEPRECATED, DO NOT USE! Use `CommissionOnNetwork` or \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m`CommissionWithCode`\u001b[0m                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mRaises a ChipStackError on failure.\u001b[0m                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - Effective Node ID of the device \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mas defined by the\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2massigned NOC\u001b[0m\u001b[1;2m)\u001b[0m                                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                  \u001b[3;33mCommissionOnNetwork\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mCommissionOnNetwork\u001b[0m\u001b[1m(\u001b[0mnodeId: \u001b[32m'int'\u001b[0m,             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        setupPinCode: \u001b[32m'int'\u001b[0m, filterType: \u001b[32m'DiscoveryFilterType'\u001b[0m = \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1m<\u001b[0m\u001b[1;95mFilterType.NONE:\u001b[0m\u001b[39m \u001b[0m\u001b[1;36m0\u001b[0m\u001b[39m>, filter: \u001b[0m\u001b[32m'typing.Any'\u001b[0m\u001b[39m = \u001b[0m\u001b[3;35mNone\u001b[0m\u001b[39m, \u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[39mdiscoveryTimeoutMsec: \u001b[0m\u001b[32m'int'\u001b[0m\u001b[39m = \u001b[0m\u001b[1;36m30000\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m -\u001b[0m\u001b[1m>\u001b[0m \u001b[32m'int'\u001b[0m:           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mDoes the routine for OnNetworkCommissioning, with a \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mfilter for mDNS discovery.\u001b[0m                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mSupported filters are:\u001b[0m                                   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    DiscoveryFilterType.NONE\u001b[0m                             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    DiscoveryFilterType.SHORT_DISCRIMINATOR\u001b[0m              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    DiscoveryFilterType.LONG_DISCRIMINATOR\u001b[0m               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    DiscoveryFilterType.VENDOR_ID\u001b[0m                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    DiscoveryFilterType.DEVICE_TYPE\u001b[0m                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    DiscoveryFilterType.COMMISSIONING_MODE\u001b[0m               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    DiscoveryFilterType.INSTANCE_NAME\u001b[0m                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    DiscoveryFilterType.COMMISSIONER\u001b[0m                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    DiscoveryFilterType.COMPRESSED_FABRIC_ID\u001b[0m             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mThe filter can be an integer, a string or \u001b[0m\u001b[2;3;35mNone\u001b[0m\u001b[2m depending\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mon the actual type of selected filter.\u001b[0m                   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mRaises a ChipStackError on failure.\u001b[0m                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - Effective Node ID of the device \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mas defined by the\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2massigned NOC\u001b[0m\u001b[1;2m)\u001b[0m                                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                     \u001b[3;33mCommissionThread\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mCommissionThread\u001b[0m\u001b[1m(\u001b[0mdiscriminator, setupPinCode,  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        nodeId, threadOperationalDataset: \u001b[32m'bytes'\u001b[0m,               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        isShortDiscriminator: \u001b[32m'bool'\u001b[0m = \u001b[3;91mFalse\u001b[0m\u001b[1m)\u001b[0m -> \u001b[32m'int'\u001b[0m:          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mCommissions a Thread device over BLE\u001b[0m                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                       \u001b[3;33mCommissionWiFi\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mCommissionWiFi\u001b[0m\u001b[1m(\u001b[0mdiscriminator, setupPinCode,    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        nodeId, ssid: \u001b[32m'str'\u001b[0m, credentials: \u001b[32m'str'\u001b[0m,                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        isShortDiscriminator: \u001b[32m'bool'\u001b[0m = \u001b[3;91mFalse\u001b[0m\u001b[1m)\u001b[0m -> \u001b[32m'int'\u001b[0m:          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mCommissions a Wi-Fi device over BLE.\u001b[0m                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                   \u001b[3;33mCommissionWithCode\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mCommissionWithCode\u001b[0m\u001b[1m(\u001b[0msetupPayload: \u001b[32m'str'\u001b[0m,        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        nodeid: \u001b[32m'int'\u001b[0m, discoveryType: \u001b[32m'DiscoveryType'\u001b[0m =          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1m<\u001b[0m\u001b[1;95mDiscoveryType.DISCOVERY_ALL:\u001b[0m\u001b[39m \u001b[0m\u001b[1;36m2\u001b[0m\u001b[39m>\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m -\u001b[0m\u001b[1m>\u001b[0m \u001b[32m'int'\u001b[0m:              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mCommission with the given nodeid from the setupPayload.\u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    setupPayload may be a QR or manual code.\u001b[0m             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    Raises a ChipStackError on failure.\u001b[0m                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - Effective Node ID of the device \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mas defined by the\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2massigned NOC\u001b[0m\u001b[1;2m)\u001b[0m                                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                              \u001b[3;33mComputeRoundTripTimeout\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mComputeRoundTripTimeout\u001b[0m\u001b[1m(\u001b[0mnodeid,                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        upperLayerProcessingTimeoutMs: \u001b[32m'int'\u001b[0m = \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m:               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns a computed timeout value based on the round-trip\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtime it takes for the peer at the other end of the \u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2msession to\u001b[0m                                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mreceive a message, process it and send it back. This is \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcomputed based on the session type, the type of \u001b[0m         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtransport,\u001b[0m                                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2msleepy characteristics of the target and a \u001b[0m              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcaller-provided value for the time it takes to process a\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mmessage\u001b[0m                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mat the upper layer on the target For group sessions.\u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mThis will result in a session being established if one \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mwasn't already.\u001b[0m                                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                           \u001b[3;33mConnectBLE\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mConnectBLE\u001b[0m\u001b[1m(\u001b[0mdiscriminator: \u001b[32m'int'\u001b[0m, setupPinCode: \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'int'\u001b[0m, nodeid: \u001b[32m'int'\u001b[0m, isShortDiscriminator: \u001b[32m'bool'\u001b[0m =     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[3;91mFalse\u001b[0m\u001b[1m)\u001b[0m -> \u001b[32m'int'\u001b[0m:                                         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mConnect to a BLE device using the given discriminator \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mand setup pin code.\u001b[0m                                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - Effective Node ID of the device \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mas defined by the\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2massigned NOC\u001b[0m\u001b[1;2m)\u001b[0m                                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                     \u001b[3;33mCreateManualCode\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mCreateManualCode\u001b[0m\u001b[1m(\u001b[0mdiscriminator: \u001b[32m'int'\u001b[0m, passcode:     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'int'\u001b[0m\u001b[1m)\u001b[0m -> \u001b[32m'str'\u001b[0m: \u001b[2mCreates a standard flow manual code \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mfrom the given discriminator and passcode.\u001b[0m               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                               \u001b[3;33mDisableICDRegistration\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mDisableICDRegistration\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mDisables ICD registration.\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                          \u001b[3;33mDiscoverCommissionableNodes\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mDiscoverCommissionableNodes\u001b[0m\u001b[1m(\u001b[0mfilterType:        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'discovery.FilterType'\u001b[0m = \u001b[1m<\u001b[0m\u001b[1;95mFilterType.NONE:\u001b[0m\u001b[39m \u001b[0m\u001b[1;36m0\u001b[0m\u001b[39m>, filter: \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.Any'\u001b[0m\u001b[39m = \u001b[0m\u001b[3;35mNone\u001b[0m\u001b[39m, stopOnFirst: \u001b[0m\u001b[32m'bool'\u001b[0m\u001b[39m = \u001b[0m\u001b[3;91mFalse\u001b[0m\u001b[39m, \u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[39mtimeoutSecond: \u001b[0m\u001b[32m'int'\u001b[0m\u001b[39m = \u001b[0m\u001b[1;36m5\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m -\u001b[0m\u001b[1m>\u001b[0m \u001b[32m'typing.Union\u001b[0m\u001b[32m[\u001b[0m\u001b[32mNone, \u001b[0m        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mCommissionableNode, typing.List\u001b[0m\u001b[32m[\u001b[0m\u001b[32mCommissionableNode\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m:   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mDiscover commissionable nodes via DNS-SD with specified \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mfilters.\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mSupported filters are:\u001b[0m                                   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    discovery.FilterType.NONE\u001b[0m                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    discovery.FilterType.SHORT_DISCRIMINATOR\u001b[0m             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    discovery.FilterType.LONG_DISCRIMINATOR\u001b[0m              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    discovery.FilterType.VENDOR_ID\u001b[0m                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    discovery.FilterType.DEVICE_TYPE\u001b[0m                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    discovery.FilterType.COMMISSIONING_MODE\u001b[0m              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    discovery.FilterType.INSTANCE_NAME\u001b[0m                   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    discovery.FilterType.COMMISSIONER\u001b[0m                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    discovery.FilterType.COMPRESSED_FABRIC_ID\u001b[0m            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mThis function will always return a list of \u001b[0m              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mCommissionableDevice. When stopOnFirst is set,\u001b[0m           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthis function will return when at least one device is \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mdiscovered or on timeout.\u001b[0m                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                \u001b[3;33mEnableICDRegistration\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mEnableICDRegistration\u001b[0m\u001b[1m(\u001b[0mparameters:                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'ICDRegistrationParameters'\u001b[0m\u001b[1m)\u001b[0m:                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mEnables ICD registration for the following commissioning\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2msession.\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mArgs:\u001b[0m                                                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    parameters: A ICDRegistrationParameters for the \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mparameters used for ICD registration, or \u001b[0m\u001b[2;3;35mNone\u001b[0m\u001b[2m for \u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mdefault arguments.\u001b[0m                                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                 \u001b[3;33mEstablishPASESession\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mEstablishPASESession\u001b[0m\u001b[1m(\u001b[0msetUpCode: \u001b[32m'str'\u001b[0m, nodeid: \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'int'\u001b[0m\u001b[1m)\u001b[0m -> \u001b[32m'None'\u001b[0m:                                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                              \u001b[3;33mEstablishPASESessionBLE\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mEstablishPASESessionBLE\u001b[0m\u001b[1m(\u001b[0msetupPinCode: \u001b[32m'int'\u001b[0m,   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        discriminator: \u001b[32m'int'\u001b[0m, nodeid: \u001b[32m'int'\u001b[0m\u001b[1m)\u001b[0m -> \u001b[32m'None'\u001b[0m:          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                               \u001b[3;33mEstablishPASESessionIP\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mEstablishPASESessionIP\u001b[0m\u001b[1m(\u001b[0mipaddr: \u001b[32m'str'\u001b[0m,          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        setupPinCode: \u001b[32m'int'\u001b[0m, nodeid: \u001b[32m'int'\u001b[0m, port: \u001b[32m'int'\u001b[0m = \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m ->  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'None'\u001b[0m:                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                       \u001b[3;33mExpireSessions\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mExpireSessions\u001b[0m\u001b[1m(\u001b[0mnodeid\u001b[1m)\u001b[0m:                              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mClose all sessions with `nodeid` \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mif any existed\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m so \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthat sessions get re-established.\u001b[0m                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mThis is needed to properly handle operations that \u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2minvalidate a node's state, such as\u001b[0m                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mUpdateNOC.\u001b[0m                                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mWARNING: ONLY CALL THIS IF YOU UNDERSTAND THE \u001b[0m           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mSIDE-EFFECTS\u001b[0m                                             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                           \u001b[3;33mFindOrEstablishPASESession\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mFindOrEstablishPASESession\u001b[0m\u001b[1m(\u001b[0msetupCode: \u001b[32m'str'\u001b[0m,   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        nodeid: \u001b[32m'int'\u001b[0m, timeoutMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        -> \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mDeviceProxyWrapper\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m: \u001b[2mReturns \u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mCommissioneeDeviceProxy if we can find or establish a \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mPASE connection to the specified device\u001b[0m                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                    \u001b[3;33mGenerateICDRegistrationParameters\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGenerateICDRegistrationParameters\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mGenerates ICD \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mregistration parameters for this controller.\u001b[0m             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                    \u001b[3;33mGetAddressAndPort\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetAddressAndPort\u001b[0m\u001b[1m(\u001b[0mnodeid\u001b[1m)\u001b[0m:                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                    \u001b[3;33mGetClusterHandler\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetClusterHandler\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m:                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                \u001b[3;33mGetCompressedFabricId\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetCompressedFabricId\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m:                             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                   \u001b[3;33mGetConnectedDevice\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mGetConnectedDevice\u001b[0m\u001b[1m(\u001b[0mnodeid, allowPASE: \u001b[32m'bool'\u001b[0m = \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[3;92mTrue\u001b[0m, timeoutMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        payloadCapability: \u001b[32m'int'\u001b[0m = \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m:                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mGets an OperationalDeviceProxy or \u001b[0m                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mCommissioneeDeviceProxy for the specified Node.\u001b[0m          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mnodeId: Target's Node ID\u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mallowPASE: Get a device proxy of a device being \u001b[0m         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcommissioned.\u001b[0m                                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtimeoutMs: Timeout for a timed invoke request. Omit or \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mset to \u001b[0m\u001b[2;32m'None'\u001b[0m\u001b[2m to indicate a non-timed request.\u001b[0m           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - DeviceProxyWrapper on success\u001b[0m                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                               \u001b[3;33mGetConnectedDeviceSync\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetConnectedDeviceSync\u001b[0m\u001b[1m(\u001b[0mnodeid, \u001b[33mallowPASE\u001b[0m=\u001b[3;92mTrue\u001b[0m,       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        timeoutMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        payloadCapability: \u001b[32m'int'\u001b[0m = \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m:                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mGets an OperationalDeviceProxy or \u001b[0m                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mCommissioneeDeviceProxy for the specified Node.\u001b[0m          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mnodeId: Target's Node ID\u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mallowPASE: Get a device proxy of a device being \u001b[0m         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcommissioned.\u001b[0m                                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtimeoutMs: Timeout for a timed invoke request. Omit or \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mset to \u001b[0m\u001b[2;32m'None'\u001b[0m\u001b[2m to indicate a non-timed request.\u001b[0m           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - DeviceProxyWrapper on success\u001b[0m                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                 \u001b[3;33mGetDiscoveredDevices\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mGetDiscoveredDevices\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m:                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                 \u001b[3;33mGetFabricCheckResult\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetFabricCheckResult\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m -> \u001b[32m'int'\u001b[0m: \u001b[2mReturns the fabric \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcheck result if SetCheckMatchingFabric was used.\u001b[0m         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                  \u001b[3;33mGetFabricIdInternal\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetFabricIdInternal\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mGet the fabric ID from the \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mobject. Only used to validate cached value from \u001b[0m         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mproperty.\u001b[0m                                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                               \u001b[3;33mGetFabricIndexInternal\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetFabricIndexInternal\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mGet the fabric index from \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthe object. Only used to validate cached value from \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mproperty.\u001b[0m                                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                             \u001b[3;33mGetIPForDiscoveredDevice\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetIPForDiscoveredDevice\u001b[0m\u001b[1m(\u001b[0midx, addrStr, length\u001b[1m)\u001b[0m:      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                    \u001b[3;33mGetNodeIdInternal\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetNodeIdInternal\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m -> \u001b[32m'int'\u001b[0m: \u001b[2mGet the node ID from \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthe object. Only used to validate cached value from \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mproperty.\u001b[0m                                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                           \u001b[3;33mGetRemoteSessionParameters\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetRemoteSessionParameters\u001b[0m\u001b[1m(\u001b[0mnodeid\u001b[1m)\u001b[0m ->                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mSessionParameters\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m:                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns the SessionParameters of reported by the remote \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mnode associated with `nodeid`.\u001b[0m                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mIf there is some error in getting SessionParameters \u001b[0m\u001b[2;3;35mNone\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mis returned.\u001b[0m                                             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mThis will result in a session being established if one \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mwasn't already established.\u001b[0m                              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                              \u001b[3;33mGetTestCommissionerUsed\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetTestCommissionerUsed\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m:                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                 \u001b[3;33mInitGroupTestingData\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mInitGroupTestingData\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mPopulates the Device \u001b[0m        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mController's GroupDataProvider with known test group \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2minfo and keys.\u001b[0m                                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                          \u001b[3;33mIsConnected\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mIsConnected\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m:                                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                        \u001b[3;33mIssueNOCChain\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mIssueNOCChain\u001b[0m\u001b[1m(\u001b[0mcsr:                             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'Clusters.OperationalCredentials.Commands.CSRResponse'\u001b[0m,  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        nodeId: \u001b[32m'int'\u001b[0m\u001b[1m)\u001b[0m:                                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mIssue an NOC chain using the associated \u001b[0m                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mOperationalCredentialsDelegate.\u001b[0m                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mThe NOC chain will be provided in TLV cert format.\u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                     \u001b[3;33mNOCChainCallback\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mNOCChainCallback\u001b[0m\u001b[1m(\u001b[0mnocChain\u001b[1m)\u001b[0m:                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                              \u001b[3;33mOpenCommissioningWindow\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mOpenCommissioningWindow\u001b[0m\u001b[1m(\u001b[0mnodeid: \u001b[32m'int'\u001b[0m,         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        timeout: \u001b[32m'int'\u001b[0m, iteration: \u001b[32m'int'\u001b[0m, discriminator: \u001b[32m'int'\u001b[0m,  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        option: \u001b[32m'CommissioningWindowPasscode'\u001b[0m\u001b[1m)\u001b[0m ->                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'CommissioningParameters'\u001b[0m:                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mOpens a commissioning window on the device with the \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mgiven nodeid.\u001b[0m                                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mnodeid:        Node id of the device\u001b[0m                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtimeout:       Command timeout\u001b[0m                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2miteration:     The PAKE iteration count associated with \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthe PAKE Passcode ID and ephemeral\u001b[0m                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m               PAKE passcode verifier to be used for \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthis commissioning. Valid range: \u001b[0m\u001b[1;2;36m1000\u001b[0m\u001b[2m - \u001b[0m\u001b[1;2;36m100000\u001b[0m           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m               Ignored if option == \u001b[0m\u001b[1;2;36m0\u001b[0m                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mdiscriminator: The long discriminator for the DNS-SD \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2madvertisement. Valid range: \u001b[0m\u001b[1;2;36m0\u001b[0m\u001b[2m-\u001b[0m\u001b[1;2;36m4095\u001b[0m                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m               Ignored if option == \u001b[0m\u001b[1;2;36m0\u001b[0m                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2moption:        \u001b[0m\u001b[1;2;36m0\u001b[0m\u001b[2m = kOriginalSetupCode\u001b[0m                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m               \u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m = kTokenWithRandomPIN\u001b[0m                   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns CommissioningParameters\u001b[0m                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                 \u001b[3;33mRead\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mRead\u001b[0m\u001b[1m(\u001b[0mnodeid: \u001b[32m'int'\u001b[0m, attributes:                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.List\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Union\u001b[0m\u001b[32m[\u001b[0m\u001b[32mNone, \u001b[0m         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m                                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.Cluster\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.ClusterAttribut…\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, typing.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.Cluster\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, \u001b[0m                                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.ClusterAttributeDescriptor\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m,\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mClusterAttribute.AttributePath\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        dataVersionFilters:                                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.List\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, \u001b[0m          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.Cluster\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        events: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.List\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Union\u001b[0m\u001b[32m[\u001b[0m\u001b[32mNone, \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mstr, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, typing.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.Cluster\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.ClusterEvent\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, typing.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, \u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.Cluster\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, \u001b[0m                                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.ClusterEvent\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m =     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[3;35mNone\u001b[0m, eventNumberFilter: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        returnClusterObject: \u001b[32m'bool'\u001b[0m = \u001b[3;91mFalse\u001b[0m, reportInterval:     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        fabricFiltered: \u001b[32m'bool'\u001b[0m = \u001b[3;92mTrue\u001b[0m, keepSubscriptions: \u001b[32m'bool'\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        = \u001b[3;91mFalse\u001b[0m, autoResubscribe: \u001b[32m'bool'\u001b[0m = \u001b[3;92mTrue\u001b[0m,                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        payloadCapability: \u001b[32m'int'\u001b[0m = \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m:                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mRead a list of attributes and/or events from a target \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mnode\u001b[0m                                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mnodeId: Target's Node ID\u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mattributes: A list of tuples of varying types depending \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mon the type of read being requested:\u001b[0m                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mendpoint, Clusters.ClusterA.AttributeA\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:   Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= specific,    Cluster = specific,   Attribute = \u001b[0m        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mspecific\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mendpoint, Clusters.ClusterA\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:              Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= specific,    Cluster = specific,   Attribute = *\u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mClusters.ClusterA.AttributeA\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:             Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= *,           Cluster = specific,   Attribute = \u001b[0m        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mspecific\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    endpoint:                                   Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= specific,    Cluster = *,          Attribute = *\u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    Clusters.ClusterA:                          Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= *,           Cluster = specific,   Attribute = *\u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[2;32m'*'\u001b[0m\u001b[2m or \u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:                                  Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= *,           Cluster = *,          Attribute = *\u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    The cluster and attributes specified above are to be\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mselected from the generated cluster objects.\u001b[0m             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    e.g.\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m        \u001b[0m\u001b[1;2;35mReadAttribute\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m \u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m -- case \u001b[0m\u001b[1;2;36m4\u001b[0m\u001b[2m above.\u001b[0m        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m        \u001b[0m\u001b[1;2;35mReadAttribute\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m Clusters.BasicInformation \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m-- case \u001b[0m\u001b[1;2;36m5\u001b[0m\u001b[2m above.\u001b[0m                                         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m        \u001b[0m\u001b[1;2;35mReadAttribute\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mClusters.BasicInformation.Attributes.Location \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m -- \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcase \u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m above.\u001b[0m                                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    An AttributePath can also be specified directly by \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1;2m[\u001b[0m\u001b[1;2;35mmatter.cluster.Attribute.AttributePath\u001b[0m\u001b[1;2m(\u001b[0m\u001b[2;33m...\u001b[0m\u001b[1;2m)\u001b[0m\u001b[1;2m]\u001b[0m              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mdataVersionFilters: A list of tuples of \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mendpoint, \u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcluster, data version\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m.\u001b[0m                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mevents: A list of tuples of varying types depending on \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthe type of read being requested:\u001b[0m                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mendpoint, Clusters.ClusterA.EventA, urgent\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:       \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mEndpoint = specific,\u001b[0m                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                                                       …\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= specific,   Event = specific, Urgent = \u001b[0m\u001b[2;3;92mTrue\u001b[0m\u001b[2m/\u001b[0m\u001b[2;3;91mFalse\u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mendpoint, Clusters.ClusterA, urgent\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:              \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mEndpoint = specific,\u001b[0m                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                                                       …\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= specific,   Event = *, Urgent = \u001b[0m\u001b[2;3;92mTrue\u001b[0m\u001b[2m/\u001b[0m\u001b[2;3;91mFalse\u001b[0m             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mClusters.ClusterA.EventA, urgent\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:                 \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mEndpoint = *,\u001b[0m                                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                                                       …\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= specific,   Event = specific, Urgent = \u001b[0m\u001b[2;3;92mTrue\u001b[0m\u001b[2m/\u001b[0m\u001b[2;3;91mFalse\u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    endpoint:                                   Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= specific,    Cluster = *,          Event = *, Urgent =\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2;3;92mTrue\u001b[0m\u001b[2m/\u001b[0m\u001b[2;3;91mFalse\u001b[0m                                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    Clusters.ClusterA:                          Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= *,          Cluster = specific,    Event = *, Urgent =\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2;3;92mTrue\u001b[0m\u001b[2m/\u001b[0m\u001b[2;3;91mFalse\u001b[0m                                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[2;32m'*'\u001b[0m\u001b[2m or \u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:                                  Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= *,          Cluster = *,          Event = *, Urgent = \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2;3;92mTrue\u001b[0m\u001b[2m/\u001b[0m\u001b[2;3;91mFalse\u001b[0m                                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2meventNumberFilter: Optional minimum event number filter.\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mreturnClusterObject: This returns the data as \u001b[0m           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mconsolidated cluster objects, with all attributes for a \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcluster inside\u001b[0m                                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                     a single cluster-wide cluster \u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mobject.\u001b[0m                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mreportInterval: A tuple of two int-s for \u001b[0m                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1;2m(\u001b[0m\u001b[2mMinIntervalFloor, MaxIntervalCeiling\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m. Used by \u001b[0m         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mestablishing subscriptions.\u001b[0m                              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    When not provided, a read request will be sent.\u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mfabricFiltered: If \u001b[0m\u001b[2;3;92mTrue\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mdefault\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m, the read/subscribe is\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mfabric-filtered and will only see things associated with\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthe fabric\u001b[0m                                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    of the reader/subscriber. Relevant for attributes \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mwith fabric-scoped data.\u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mkeepSubscriptions: Keep existing subscriptions. If set \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mto \u001b[0m\u001b[2;3;91mFalse\u001b[0m\u001b[2m, existing subscriptions with this node will get\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcancelled\u001b[0m                                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    and a new one gets setup.\u001b[0m                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mautoResubscribe: Automatically resubscribe to the \u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2msubscription if subscription is lost. The automatic \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mre-subscription only\u001b[0m                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    applies if the subscription establishes on first \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtry. If the first subscription establishment attempt \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mfails the function\u001b[0m                                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    returns right away.\u001b[0m                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - AsyncReadTransaction.ReadResponse. Please see \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReadAttribute and ReadEvent for examples of how to \u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2maccess data.\u001b[0m                                             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mRaises:\u001b[0m                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - InteractionModelError \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mmatter.interaction_model\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m on \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2merror\u001b[0m                                                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                        \u001b[3;33mReadAttribute\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mReadAttribute\u001b[0m\u001b[1m(\u001b[0mnodeid: \u001b[32m'int'\u001b[0m, attributes:       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.List\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Union\u001b[0m\u001b[32m[\u001b[0m\u001b[32mNone, \u001b[0m         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m                                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.Cluster\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.ClusterAttribut…\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, typing.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.Cluster\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, \u001b[0m                                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.ClusterAttributeDescriptor\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m,\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mClusterAttribute.AttributePath\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m, dataVersionFilters:  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.List\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, \u001b[0m          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.Cluster\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        returnClusterObject: \u001b[32m'bool'\u001b[0m = \u001b[3;91mFalse\u001b[0m, reportInterval:     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        fabricFiltered: \u001b[32m'bool'\u001b[0m = \u001b[3;92mTrue\u001b[0m, keepSubscriptions: \u001b[32m'bool'\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        = \u001b[3;91mFalse\u001b[0m, autoResubscribe: \u001b[32m'bool'\u001b[0m = \u001b[3;92mTrue\u001b[0m,                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        payloadCapability: \u001b[32m'int'\u001b[0m = \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m:                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mRead a list of attributes from a target node, this is a \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mwrapper of \u001b[0m\u001b[1;2;35mDeviceController.Read\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2m)\u001b[0m                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mnodeId: Target's Node ID\u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mattributes: A list of tuples of varying types depending \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mon the type of read being requested:\u001b[0m                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mendpoint, Clusters.ClusterA.AttributeA\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:   Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= specific,    Cluster = specific,   Attribute = \u001b[0m        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mspecific\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mendpoint, Clusters.ClusterA\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:              Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= specific,    Cluster = specific,   Attribute = *\u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mClusters.ClusterA.AttributeA\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:             Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= *,           Cluster = specific,   Attribute = \u001b[0m        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mspecific\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    endpoint:                                   Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= specific,    Cluster = *,          Attribute = *\u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    Clusters.ClusterA:                          Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= *,           Cluster = specific,   Attribute = *\u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[2;32m'*'\u001b[0m\u001b[2m or \u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:                                  Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= *,           Cluster = *,          Attribute = *\u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    The cluster and attributes specified above are to be\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mselected from the generated cluster objects.\u001b[0m             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    e.g.\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m        \u001b[0m\u001b[1;2;35mReadAttribute\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m \u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m -- case \u001b[0m\u001b[1;2;36m4\u001b[0m\u001b[2m above.\u001b[0m        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m        \u001b[0m\u001b[1;2;35mReadAttribute\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m Clusters.BasicInformation \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m-- case \u001b[0m\u001b[1;2;36m5\u001b[0m\u001b[2m above.\u001b[0m                                         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m        \u001b[0m\u001b[1;2;35mReadAttribute\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mClusters.BasicInformation.Attributes.Location \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m -- \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcase \u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m above.\u001b[0m                                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    An AttributePath can also be specified directly by \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1;2m[\u001b[0m\u001b[1;2;35mmatter.cluster.Attribute.AttributePath\u001b[0m\u001b[1;2m(\u001b[0m\u001b[2;33m...\u001b[0m\u001b[1;2m)\u001b[0m\u001b[1;2m]\u001b[0m              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mreturnClusterObject: This returns the data as \u001b[0m           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mconsolidated cluster objects, with all attributes for a \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcluster inside\u001b[0m                                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                     a single cluster-wide cluster \u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mobject.\u001b[0m                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mreportInterval: A tuple of two int-s for \u001b[0m                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1;2m(\u001b[0m\u001b[2mMinIntervalFloor, MaxIntervalCeiling\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m. Used by \u001b[0m         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mestablishing subscriptions.\u001b[0m                              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    When not provided, a read request will be sent.\u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mfabricFiltered: If \u001b[0m\u001b[2;3;92mTrue\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mdefault\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m, the read/subscribe is\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mfabric-filtered and will only see things associated with\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthe fabric\u001b[0m                                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    of the reader/subscriber. Relevant for attributes \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mwith fabric-scoped data.\u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mkeepSubscriptions: Keep existing subscriptions. If set \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mto \u001b[0m\u001b[2;3;91mFalse\u001b[0m\u001b[2m, existing subscriptions with this node will get\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcancelled\u001b[0m                                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    and a new one gets setup.\u001b[0m                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mautoResubscribe: Automatically resubscribe to the \u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2msubscription if subscription is lost. The automatic \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mre-subscription only\u001b[0m                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    applies if the subscription establishes on first \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtry. If the first subscription establishment attempt \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mfails the function\u001b[0m                                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    returns right away.\u001b[0m                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - subscription request: \u001b[0m                             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mClusterAttribute.SubscriptionTransaction\u001b[0m                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                            To get notified on attribute\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mchange use SetAttributeUpdateCallback on the returned\u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                            SubscriptionTransaction. \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mThis is used to set a callback function, which is a \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcallable of\u001b[0m                                              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                            type \u001b[0m                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mCallable\u001b[0m\u001b[1;2m[\u001b[0m\u001b[1;2m[\u001b[0m\u001b[2mTypedAttributePath, SubscriptionTransaction\u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m, \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2;3;35mNone\u001b[0m\u001b[1;2m]\u001b[0m                                                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                            Get the attribute value from\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthe change path using GetAttribute on the \u001b[0m               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mSubscriptionTransaction\u001b[0m                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                            You can await changes in the\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mmain loop using a trigger mechanism from the callback.\u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                            ex. queue.SimpleQueue\u001b[0m        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - read request: \u001b[0m                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mAsyncReadTransaction.ReadResponse.attributes.\u001b[0m            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                    This is of type \u001b[0m                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mAttributeCache.attributeCache \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mAttribute.py\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m,\u001b[0m            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                    which is a dict mapping endpoints to\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2ma list of Cluster \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mClusterObjects.py\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m classes\u001b[0m            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mdict\u001b[0m\u001b[1;2m[\u001b[0m\u001b[2mint, List\u001b[0m\u001b[1;2m[\u001b[0m\u001b[2mCluster\u001b[0m\u001b[1;2m]\u001b[0m\u001b[1;2m]\u001b[0m\u001b[1;2m)\u001b[0m           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                    Access as \u001b[0m                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mreturned_object\u001b[0m\u001b[1;2m[\u001b[0m\u001b[2mendpoint_id\u001b[0m\u001b[1;2m]\u001b[0m\u001b[1;2m[\u001b[0m\u001b[1;2m<\u001b[0m\u001b[1;2;95mCluster\u001b[0m\u001b[2;39m class>\u001b[0m\u001b[1;2;39m]\u001b[0m\u001b[1;2;39m[\u001b[0m\u001b[2;39m<Attribute\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2;39mclass\u001b[0m\u001b[1;2m>\u001b[0m\u001b[1;2m]\u001b[0m                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                    Ex. To access the OnTime attribute \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mfrom the OnOff cluster on endpoint \u001b[0m\u001b[1;2;36m1\u001b[0m                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                    returned_object\u001b[0m\u001b[1;2m[\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[1;2m]\u001b[0m\u001b[1;2m[\u001b[0m\u001b[2mClusters.OnOff\u001b[0m\u001b[1;2m]\u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m…\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mRaises:\u001b[0m                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - InteractionModelError \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mmatter.interaction_model\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m on \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2merror\u001b[0m                                                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                            \u001b[3;33mReadEvent\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mReadEvent\u001b[0m\u001b[1m(\u001b[0mnodeid: \u001b[32m'int'\u001b[0m, events:               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.List\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Union\u001b[0m\u001b[32m[\u001b[0m\u001b[32mNone, typing.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mstr, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.Cluster\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.ClusterEvent\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, typing.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, \u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.Cluster\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, \u001b[0m              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, \u001b[0m                                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mtyping.Type\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.ClusterEvent\u001b[0m\u001b[32m]\u001b[0m\u001b[32m, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m,       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        eventNumberFilter: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        fabricFiltered: \u001b[32m'bool'\u001b[0m = \u001b[3;92mTrue\u001b[0m, reportInterval:           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, int\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        keepSubscriptions: \u001b[32m'bool'\u001b[0m = \u001b[3;91mFalse\u001b[0m, autoResubscribe:      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'bool'\u001b[0m = \u001b[3;92mTrue\u001b[0m, payloadCapability: \u001b[32m'int'\u001b[0m = \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m:            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mRead a list of events from a target node, this is a \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mwrapper of \u001b[0m\u001b[1;2;35mDeviceController.Read\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2m)\u001b[0m                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mnodeId: Target's Node ID\u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mevents: A list of tuples of varying types depending on \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthe type of read being requested:\u001b[0m                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mendpoint, Clusters.ClusterA.EventA, urgent\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:       \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mEndpoint = specific,\u001b[0m                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                                                       …\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= specific,   Event = specific, Urgent = \u001b[0m\u001b[2;3;92mTrue\u001b[0m\u001b[2m/\u001b[0m\u001b[2;3;91mFalse\u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mendpoint, Clusters.ClusterA, urgent\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:              \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mEndpoint = specific,\u001b[0m                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                                                       …\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= specific,   Event = *, Urgent = \u001b[0m\u001b[2;3;92mTrue\u001b[0m\u001b[2m/\u001b[0m\u001b[2;3;91mFalse\u001b[0m             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mClusters.ClusterA.EventA, urgent\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:                 \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mEndpoint = *,\u001b[0m                                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                                                       …\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= specific,   Event = specific, Urgent = \u001b[0m\u001b[2;3;92mTrue\u001b[0m\u001b[2m/\u001b[0m\u001b[2;3;91mFalse\u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    endpoint:                                   Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= specific,    Cluster = *,          Event = *, Urgent =\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2;3;92mTrue\u001b[0m\u001b[2m/\u001b[0m\u001b[2;3;91mFalse\u001b[0m                                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    Clusters.ClusterA:                          Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= *,          Cluster = specific,    Event = *, Urgent =\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2;3;92mTrue\u001b[0m\u001b[2m/\u001b[0m\u001b[2;3;91mFalse\u001b[0m                                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[2;32m'*'\u001b[0m\u001b[2m or \u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:                                  Endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m= *,          Cluster = *,          Event = *, Urgent = \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2;3;92mTrue\u001b[0m\u001b[2m/\u001b[0m\u001b[2;3;91mFalse\u001b[0m                                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mThe cluster and events specified above are to be \u001b[0m        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mselected from the generated cluster objects.\u001b[0m             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2me.g.\u001b[0m                                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2;35mReadEvent\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m \u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m -- case \u001b[0m\u001b[1;2;36m4\u001b[0m\u001b[2m above.\u001b[0m                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2;35mReadEvent\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m Clusters.BasicInformation \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m -- case\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1;2;36m5\u001b[0m\u001b[2m above.\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2;35mReadEvent\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mClusters.BasicInformation.Events.Location \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m -- case \u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mabove.\u001b[0m                                                   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2meventNumberFilter: Optional minimum event number filter.\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mreportInterval: A tuple of two int-s for \u001b[0m                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1;2m(\u001b[0m\u001b[2mMinIntervalFloor, MaxIntervalCeiling\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m. Used by \u001b[0m         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mestablishing subscriptions.\u001b[0m                              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    When not provided, a read request will be sent.\u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mkeepSubscriptions: Keep existing subscriptions. If set \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mto \u001b[0m\u001b[2;3;91mFalse\u001b[0m\u001b[2m, existing subscriptions with this node will get\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcancelled\u001b[0m                                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    and a new one gets setup.\u001b[0m                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mautoResubscribe: Automatically resubscribe to the \u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2msubscription if subscription is lost. The automatic \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mre-subscription only\u001b[0m                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    applies if the subscription establishes on first \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtry. If the first subscription establishment attempt \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mfails the function\u001b[0m                                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    returns right away.\u001b[0m                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - subscription request: \u001b[0m                             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mClusterAttribute.SubscriptionTransaction\u001b[0m                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                            To get notified on event \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2msubscriptions, use the SetEventUpdateCallback function \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mon the\u001b[0m                                                   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                            returned  \u001b[0m                   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mSubscriptionTransaction. This is a callable of type\u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                            Callable\u001b[0m\u001b[1;2m[\u001b[0m\u001b[1;2m[\u001b[0m\u001b[2mEventReadResult, \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mSubscriptionTransaction\u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m, \u001b[0m\u001b[2;3;35mNone\u001b[0m\u001b[1;2m]\u001b[0m                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                            You can await events using a\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtrigger mechanism in the callback. ex. queue.SimpleQueue\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - read request: \u001b[0m                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mAsyncReadTransaction.ReadResponse.events.\u001b[0m                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                    This is a List\u001b[0m\u001b[1;2m[\u001b[0m\u001b[2mClusterEvent\u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m.\u001b[0m        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mRaises:\u001b[0m                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - InteractionModelError \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mmatter.interaction_model\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m on \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2merror\u001b[0m                                                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                         \u001b[3;33mResetCommissioningParameters\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mResetCommissioningParameters\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mSets the \u001b[0m            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcommissioning parameters back to the default values.\u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                \u001b[3;33mResetTestCommissioner\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mResetTestCommissioner\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m:                             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                          \u001b[3;33mResolveNode\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mResolveNode\u001b[0m\u001b[1m(\u001b[0mnodeid\u001b[1m)\u001b[0m:                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                    \u001b[3;33mSendBatchCommands\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mSendBatchCommands\u001b[0m\u001b[1m(\u001b[0mnodeid: \u001b[32m'int'\u001b[0m, commands:     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.List\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterCommand.InvokeRequestInfo\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m,         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        timedRequestTimeoutMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        interactionTimeoutMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        busyWaitMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        suppressResponse: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mbool\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        payloadCapability: \u001b[32m'int'\u001b[0m = \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m:                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mSend a batch of cluster-object encapsulated commands to \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2ma node and get returned a future that can be awaited \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mupon to receive\u001b[0m                                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthe responses. If a valid responseType is passed in, \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthat will be used to de-serialize the object. If not,\u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthe type will be automatically deduced from the metadata\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mreceived over the wire.\u001b[0m                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mnodeId: Target's Node ID\u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcommands: A list of InvokeRequestInfo containing the \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcommands to invoke.\u001b[0m                                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtimedWriteTimeoutMs: Timeout for a timed invoke request.\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mOmit or set to \u001b[0m\u001b[2;32m'None'\u001b[0m\u001b[2m to indicate a non-timed request.\u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2minteractionTimeoutMs: Overall timeout for the \u001b[0m           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2minteraction. Omit or set to \u001b[0m\u001b[2;32m'None'\u001b[0m\u001b[2m to have the SDK \u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mautomatically compute the\u001b[0m                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                      right timeout value based on \u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtransport characteristics as well as the responsiveness \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mof the target.\u001b[0m                                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mbusyWaitMs: How long to wait in ms after sending command\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mto device before performing any other operations.\u001b[0m        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2msuppressResponse: Do not send a response to this action\u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - List of command responses in the same order as \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mwhat was given in `commands`. The type of the response \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mis defined by the command.\u001b[0m                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m              - A value of `\u001b[0m\u001b[2;3;35mNone\u001b[0m\u001b[2m` indicates success.\u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m              - If only a single command fails, for \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mexample with `UNSUPPORTED_COMMAND`, the corresponding \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mindex associated with the command will,\u001b[0m                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                contain \u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m`interaction_model.Status.UnsupportedCommand`.\u001b[0m           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m              - If a command is not responded to by \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mserver, command will contain \u001b[0m                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m`interaction_model.Status.NoCommandResponse`\u001b[0m             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mRaises:\u001b[0m                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - InteractionModelError if error with sending of \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mInvokeRequestMessage fails as a whole.\u001b[0m                   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                          \u001b[3;33mSendCommand\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mSendCommand\u001b[0m\u001b[1m(\u001b[0mnodeid: \u001b[32m'int'\u001b[0m, endpoint: \u001b[32m'int'\u001b[0m,    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        payload: \u001b[32m'ClusterObjects.ClusterCommand'\u001b[0m,                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[33mresponseType\u001b[0m=\u001b[3;35mNone\u001b[0m, timedRequestTimeoutMs:                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m, interactionTimeoutMs:     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m, busyWaitMs:               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m, suppressResponse:         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mbool\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m, payloadCapability: \u001b[32m'int'\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        = \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m:                                                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mSend a cluster-object encapsulated command to a node and\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mget returned a future that can be awaited upon to \u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mreceive\u001b[0m                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthe response. If a valid responseType is passed in, that\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mwill be used to de-serialize the object. If not,\u001b[0m         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthe type will be automatically deduced from the metadata\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mreceived over the wire.\u001b[0m                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtimedWriteTimeoutMs: Timeout for a timed invoke request.\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mOmit or set to \u001b[0m\u001b[2;32m'None'\u001b[0m\u001b[2m to indicate a non-timed request.\u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2minteractionTimeoutMs: Overall timeout for the \u001b[0m           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2minteraction. Omit or set to \u001b[0m\u001b[2;32m'None'\u001b[0m\u001b[2m to have the SDK \u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mautomatically compute the\u001b[0m                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                      right timeout value based on \u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtransport characteristics as well as the responsiveness \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mof the target.\u001b[0m                                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - command response. The type of the response is \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mdefined by the command.\u001b[0m                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mRaises:\u001b[0m                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - InteractionModelError on error\u001b[0m                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                     \u001b[3;33mSendGroupCommand\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSendGroupCommand\u001b[0m\u001b[1m(\u001b[0mgroupid: \u001b[32m'int'\u001b[0m, payload:            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'ClusterObjects.ClusterCommand'\u001b[0m, busyWaitMs:             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m:                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mSend a group cluster-object encapsulated command to a \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mgroup_id and get returned a future\u001b[0m                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mthat can be awaited upon to get confirmation command was\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2msent.\u001b[0m                                                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - \u001b[0m\u001b[2;3;35mNone\u001b[0m\u001b[2m: responses are not sent to group commands\u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mRaises:\u001b[0m                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - InteractionModelError on error\u001b[0m                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                               \u001b[3;33mSetCheckMatchingFabric\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSetCheckMatchingFabric\u001b[0m\u001b[1m(\u001b[0mcheck: \u001b[32m'bool'\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mInstructs the\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mauto-commissioner to perform a matching fabric check \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mbefore commissioning.\u001b[0m                                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                        \u001b[3;33mSetDefaultNTP\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSetDefaultNTP\u001b[0m\u001b[1m(\u001b[0mdefaultNTP: \u001b[32m'str'\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mSet the DefaultNTP\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mto set during commissioning\u001b[0m                              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                         \u001b[3;33mSetDSTOffset\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSetDSTOffset\u001b[0m\u001b[1m(\u001b[0moffset: \u001b[32m'int'\u001b[0m, validStarting: \u001b[32m'int'\u001b[0m,    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        validUntil: \u001b[32m'int'\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mSet the DST offset to set during \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcommissioning. Currently only one DST entry is supported\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                               \u001b[3;33mSetIpk\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSetIpk\u001b[0m\u001b[1m(\u001b[0mipk: \u001b[32m'bytes'\u001b[0m\u001b[1m)\u001b[0m:                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                         \u001b[3;33mSetSkipCommissioningComplete\u001b[0m = \u001b[3;96mdef \u001b[0m                                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1;31mSetSkipCommissioningComplete\u001b[0m\u001b[1m(\u001b[0mskipCommissioningComplete:  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'bool'\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mSet whether to skip the commissioning complete \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcallback\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                \u001b[3;33mSetTCAcknowledgements\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSetTCAcknowledgements\u001b[0m\u001b[1m(\u001b[0mtcAcceptedVersion: \u001b[32m'int'\u001b[0m,      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        tcUserResponse: \u001b[32m'int'\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mSet the TC acknowledgements to \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mset during commissioning\u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m            \u001b[3;33mSetTestCommissionerPrematureCompleteAfter\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSetTestCommissionerPrematureCompleteAfter\u001b[0m\u001b[1m(\u001b[0mstage:     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'int'\u001b[0m\u001b[1m)\u001b[0m:                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m           \u001b[3;33mSetTestCommissionerSimulateFailureOnReport\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSetTestCommissionerSimulateFailureOnReport\u001b[0m\u001b[1m(\u001b[0mstage:    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'int'\u001b[0m\u001b[1m)\u001b[0m:                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m            \u001b[3;33mSetTestCommissionerSimulateFailureOnStage\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSetTestCommissionerSimulateFailureOnStage\u001b[0m\u001b[1m(\u001b[0mstage:     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'int'\u001b[0m\u001b[1m)\u001b[0m:                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                          \u001b[3;33mSetThreadOperationalDataset\u001b[0m = \u001b[3;96mdef \u001b[0m                                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1;31mSetThreadOperationalDataset\u001b[0m\u001b[1m(\u001b[0mthreadOperationalDataset\u001b[1m)\u001b[0m:   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mSet the Thread operational dataset to set during \u001b[0m        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcommissioning.\u001b[0m                                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                          \u001b[3;33mSetTimeZone\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSetTimeZone\u001b[0m\u001b[1m(\u001b[0moffset: \u001b[32m'int'\u001b[0m, validAt: \u001b[32m'int'\u001b[0m, name:     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'str'\u001b[0m = \u001b[32m''\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mSet the time zone to set during \u001b[0m            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcommissioning. Currently only one time zone entry is \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2msupported\u001b[0m                                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                 \u001b[3;33mSetTrustedTimeSource\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSetTrustedTimeSource\u001b[0m\u001b[1m(\u001b[0mnodeId: \u001b[32m'int'\u001b[0m, endpoint:        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'int'\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mSet the trusted time source nodeId to set during\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcommissioning. This must be a node on the commissioner \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mfabric.\u001b[0m                                                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                   \u001b[3;33mSetWiFiCredentials\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSetWiFiCredentials\u001b[0m\u001b[1m(\u001b[0mssid: \u001b[32m'str'\u001b[0m, credentials: \u001b[32m'str'\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mSet the Wi-Fi credentials to set during commissioning.\u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                             \u001b[3;33mShutdown\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mShutdown\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m:                                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mShuts down this controller and reclaims any used \u001b[0m        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mresources, including the bound\u001b[0m                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mC++ constructor instance in the SDK.\u001b[0m                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                          \u001b[3;33mShutdownAll\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mShutdownAll\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[2mShut down all active controllers and \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mreclaim any used resources.\u001b[0m                              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                      \u001b[3;33mTestOnlyPrepareToReceiveBdxData\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mTestOnlyPrepareToReceiveBdxData\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m ->                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'asyncio.Future'\u001b[0m:                                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mSets up the system to expect a node to initiate a BDX \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtransfer. The transfer will send data here.\u001b[0m              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - a future that will yield a BdxTransfer with the \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2minit message from the transfer.\u001b[0m                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                         \u001b[3;33mTestOnlyPrepareToSendBdxData\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mTestOnlyPrepareToSendBdxData\u001b[0m\u001b[1m(\u001b[0mdata: \u001b[32m'bytes'\u001b[0m\u001b[1m)\u001b[0m ->       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'asyncio.Future'\u001b[0m:                                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mSets up the system to expect a node to initiate a BDX \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtransfer. The transfer will send data to the node.\u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - a future that will yield a BdxTransfer with the \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2minit message from the transfer.\u001b[0m                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                            \u001b[3;33mTestOnlySendBatchCommands\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mTestOnlySendBatchCommands\u001b[0m\u001b[1m(\u001b[0mnodeid: \u001b[32m'int'\u001b[0m,       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        commands:                                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.List\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterCommand.InvokeRequestInfo\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m,         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        timedRequestTimeoutMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        interactionTimeoutMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        busyWaitMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        suppressResponse: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mbool\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        remoteMaxPathsPerInvoke: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        suppressTimedRequestMessage: \u001b[32m'bool'\u001b[0m = \u001b[3;91mFalse\u001b[0m,             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        commandRefsOverride: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.List\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        = \u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m:                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mPlease see SendBatchCommands for description.\u001b[0m            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mTestOnly overridable arguments:\u001b[0m                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    remoteMaxPathsPerInvoke: Overrides the number of \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mbatch commands we think can be sent to remote node.\u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    suppressTimedRequestMessage: When set to true, we \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2msuppress sending Timed Request Message.\u001b[0m                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    commandRefsOverride: List of commandRefs to use for \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2meach command with the same index in `commands`.\u001b[0m          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - TestOnlyBatchCommandResponse\u001b[0m                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[3;33mTestOnlySendCommandTimedRequestFlagWithNoTimedInvoke\u001b[0m = \u001b[3;96masync def \u001b[0m                                               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1;31mTestOnlySendCommandTimedRequestFlagWithNoTimedInvoke\u001b[0m\u001b[1m(\u001b[0mno… \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'int'\u001b[0m, endpoint: \u001b[32m'int'\u001b[0m, payload:                         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'ClusterObjects.ClusterCommand'\u001b[0m, \u001b[33mresponseType\u001b[0m=\u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m:     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mPlease see SendCommand for description.\u001b[0m                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                         \u001b[3;33mUnpairDevice\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mUnpairDevice\u001b[0m\u001b[1m(\u001b[0mnodeid: \u001b[32m'int'\u001b[0m\u001b[1m)\u001b[0m -> \u001b[32m'None'\u001b[0m:         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                        \u001b[3;33mWaitForActive\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mWaitForActive\u001b[0m\u001b[1m(\u001b[0mnodeid, *, \u001b[33mtimeoutSeconds\u001b[0m=\u001b[1;36m30\u001b[0m\u001b[1;36m.0\u001b[0m,  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[33mstayActiveDurationMs\u001b[0m=\u001b[1;36m30000\u001b[0m\u001b[1m)\u001b[0m:                             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mWaits a LIT ICD device to become active. Will send a \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mStayActive command to the device on active to allow \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mhuman operations.\u001b[0m                                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mnodeId: Node ID of the LID ICD\u001b[0m                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mstayActiveDurationMs: The duration in the StayActive \u001b[0m    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcommand, in milliseconds\u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - StayActiveResponse on success\u001b[0m                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                       \u001b[3;33mWriteAttribute\u001b[0m = \u001b[3;96masync def \u001b[0m\u001b[1;31mWriteAttribute\u001b[0m\u001b[1m(\u001b[0mnodeid: \u001b[32m'int'\u001b[0m, attributes:      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.List\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint, \u001b[0m                          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mClusterObjects.ClusterAttributeDescriptor\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m,            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        timedRequestTimeoutMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,    \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        interactionTimeoutMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        busyWaitMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,               \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        payloadCapability: \u001b[32m'int'\u001b[0m = \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m:                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mWrite a list of attributes on a target node.\u001b[0m             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mnodeId: Target's Node ID\u001b[0m                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtimedWriteTimeoutMs: Timeout for a timed write request. \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mOmit or set to \u001b[0m\u001b[2;32m'None'\u001b[0m\u001b[2m to indicate a non-timed request.\u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mattributes: A list of tuples of type \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mendpoint, \u001b[0m         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mcluster-object\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:\u001b[0m                                         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2minteractionTimeoutMs: Overall timeout for the \u001b[0m           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2minteraction. Omit or set to \u001b[0m\u001b[2;32m'None'\u001b[0m\u001b[2m to have the SDK \u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mautomatically compute the\u001b[0m                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m                      right timeout value based on \u001b[0m      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mtransport characteristics as well as the responsiveness \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mof the target.\u001b[0m                                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mE.g\u001b[0m                                                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1;2;35mClusters.UnitTesting.Attributes.XYZAttribute\u001b[0m\u001b[1;2m(\u001b[0m\u001b[2;32m'hello'\u001b[0m\u001b[1;2m)\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m-- Write \u001b[0m\u001b[2;32m'hello'\u001b[0m                                         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    to the XYZ attribute on the test cluster to endpoint\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1;2;36m1\u001b[0m                                                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mReturns:\u001b[0m                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    - \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2mAttributeStatus\u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mlist - one for each path\u001b[0m\u001b[1;2m)\u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                  \u001b[3;33mWriteGroupAttribute\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mWriteGroupAttribute\u001b[0m\u001b[1m(\u001b[0mgroupid: \u001b[32m'int'\u001b[0m, attributes:      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32m'typing.List\u001b[0m\u001b[32m[\u001b[0m\u001b[32mtyping.Tuple\u001b[0m\u001b[32m[\u001b[0m\u001b[32mClusterObjects.ClusterAttribu…\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m, busyWaitMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m:      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mWrite a list of attributes on a target group.\u001b[0m            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mgroupid: Group ID to send write attribute to.\u001b[0m            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mattributes: A list of tuples of type \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mcluster-object, \u001b[0m   \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mdata-version\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m. The data-version can be omitted.\u001b[0m          \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2mE.g\u001b[0m                                                      \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[2m    \u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;35mClusters.UnitTesting.Attributes.XYZAttribute\u001b[0m\u001b[1;2m(\u001b[0m\u001b[2;32m'hell…\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                        \u001b[1;2;36m1\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m -- Group Write \u001b[0m\u001b[2;32m'hello'\u001b[0m\u001b[2m with data version \u001b[0m\u001b[1;2;36m1\u001b[0m            \u001b[34m│\u001b[0m\n",
       "\u001b[34m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #000080; text-decoration-color: #000080\">╭───────── </span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> mattersetlog at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x78e55d1fba30</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">&gt;</span><span style=\"color: #000080; text-decoration-color: #000080\"> ──────────╮</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">mattersetlog</span><span style=\"font-weight: bold\">(</span>level<span style=\"font-weight: bold\">)</span>:                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                              <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">36</span><span style=\"font-style: italic\"> attribute(s) not shown.</span> Run <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">inspect</span><span style=\"font-weight: bold\">(</span>inspect<span style=\"font-weight: bold\">)</span> for options. <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">╰──────────────────────────────────────────────────────────────╯</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[34m╭─\u001b[0m\u001b[34m────────\u001b[0m\u001b[34m \u001b[0m\u001b[1;34m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m mattersetlog at \u001b[0m\u001b[1;36m0x78e55d1fba30\u001b[0m\u001b[1;34m>\u001b[0m\u001b[34m \u001b[0m\u001b[34m─────────\u001b[0m\u001b[34m─╮\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[3;96mdef \u001b[0m\u001b[1;31mmattersetlog\u001b[0m\u001b[1m(\u001b[0mlevel\u001b[1m)\u001b[0m:                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                              \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[1;36m36\u001b[0m\u001b[3m attribute(s) not shown.\u001b[0m Run \u001b[1;35minspect\u001b[0m\u001b[1m(\u001b[0minspect\u001b[1m)\u001b[0m for options. \u001b[34m│\u001b[0m\n",
       "\u001b[34m╰──────────────────────────────────────────────────────────────╯\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #000080; text-decoration-color: #000080\">╭──────────────── </span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> mattersetdebug at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x78e55d1fb7f0</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">&gt;</span><span style=\"color: #000080; text-decoration-color: #000080\"> ────────────────╮</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">mattersetdebug</span><span style=\"font-weight: bold\">(</span>enableDebugMode: bool = <span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span><span style=\"font-weight: bold\">)</span>:                           <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">Enables debug mode that is utilized by some Matter modules</span>                  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">to better facilitate debugging of failures </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">(</span><span style=\"color: #008080; text-decoration-color: #008080\">e.g throwing exceptions instead</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">of returning well-formatted results</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">)</span><span style=\"color: #008080; text-decoration-color: #008080\">.</span>                                       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                             <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">36</span><span style=\"font-style: italic\"> attribute(s) not shown.</span> Run <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">inspect</span><span style=\"font-weight: bold\">(</span>inspect<span style=\"font-weight: bold\">)</span> for options.                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">╰─────────────────────────────────────────────────────────────────────────────╯</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[34m╭─\u001b[0m\u001b[34m───────────────\u001b[0m\u001b[34m \u001b[0m\u001b[1;34m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m mattersetdebug at \u001b[0m\u001b[1;36m0x78e55d1fb7f0\u001b[0m\u001b[1;34m>\u001b[0m\u001b[34m \u001b[0m\u001b[34m───────────────\u001b[0m\u001b[34m─╮\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[3;96mdef \u001b[0m\u001b[1;31mmattersetdebug\u001b[0m\u001b[1m(\u001b[0menableDebugMode: bool = \u001b[3;92mTrue\u001b[0m\u001b[1m)\u001b[0m:                           \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mEnables debug mode that is utilized by some Matter modules\u001b[0m                  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mto better facilitate debugging of failures \u001b[0m\u001b[1;36m(\u001b[0m\u001b[36me.g throwing exceptions instead\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mof returning well-formatted results\u001b[0m\u001b[1;36m)\u001b[0m\u001b[36m.\u001b[0m                                       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                             \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[1;36m36\u001b[0m\u001b[3m attribute(s) not shown.\u001b[0m Run \u001b[1;35minspect\u001b[0m\u001b[1m(\u001b[0minspect\u001b[1m)\u001b[0m for options.                \u001b[34m│\u001b[0m\n",
       "\u001b[34m╰─────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "matterhelp()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "17536445-9ca7-4bcb-9a1b-752d08858442",
   "metadata": {},
   "source": [
    "To get help on a specific method in that class, you can pass that in as an argument:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "537404ad-cf20-4ce8-9cd6-037c397339ee",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #000080; text-decoration-color: #000080\">╭─ </span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">&lt;</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">bound</span><span style=\"color: #000000; text-decoration-color: #000000\"> method ChipDeviceControllerBase.SendCommand of &lt;matter.ChipDeviceCtrl.ChipDeviceController object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x78</span><span style=\"color: #000080; text-decoration-color: #000080\">─╮</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">async def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ChipDeviceControllerBase.SendCommand</span><span style=\"font-weight: bold\">(</span>nodeid: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, endpoint: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span>, payload:                         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">'ClusterObjects.ClusterCommand'</span>, <span style=\"color: #808000; text-decoration-color: #808000\">responseType</span>=<span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, timedRequestTimeoutMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> interactionTimeoutMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, busyWaitMs: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[int]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>,                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> suppressResponse: <span style=\"color: #008000; text-decoration-color: #008000\">'typing.Optional[bool]'</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, payloadCapability: <span style=\"color: #008000; text-decoration-color: #008000\">'int'</span> = <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0</span><span style=\"font-weight: bold\">)</span>:                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">Send a cluster-object encapsulated command to a node and get returned a future that can be awaited upon to </span>     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">receive</span>                                                                                                         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">the response. If a valid responseType is passed in, that will be used to de-serialize the object. If not,</span>       <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">the type will be automatically deduced from the metadata received over the wire.</span>                                <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">timedWriteTimeoutMs: Timeout for a timed invoke request. Omit or set to </span><span style=\"color: #008000; text-decoration-color: #008000\">'None'</span><span style=\"color: #008080; text-decoration-color: #008080\"> to indicate a non-timed request.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">interactionTimeoutMs: Overall timeout for the interaction. Omit or set to </span><span style=\"color: #008000; text-decoration-color: #008000\">'None'</span><span style=\"color: #008080; text-decoration-color: #008080\"> to have the SDK automatically </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">compute the</span>                                                                                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">                      right timeout value based on transport characteristics as well as the responsiveness of </span>  <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">the target.</span>                                                                                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">Returns:</span>                                                                                                        <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">    - command response. The type of the response is defined by the command.</span>                                     <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">Raises:</span>                                                                                                         <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">    - InteractionModelError on error</span>                                                                            <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span>                                                                                                                 <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">27</span><span style=\"font-style: italic\"> attribute(s) not shown.</span> Run <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">inspect</span><span style=\"font-weight: bold\">(</span>inspect<span style=\"font-weight: bold\">)</span> for options.                                                    <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n",
       "<span style=\"color: #000080; text-decoration-color: #000080\">╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[34m╭─\u001b[0m\u001b[34m \u001b[0m\u001b[1;34m<\u001b[0m\u001b[1;95mbound\u001b[0m\u001b[39m method ChipDeviceControllerBase.SendCommand of <matter.ChipDeviceCtrl.ChipDeviceController object at \u001b[0m\u001b[1;36m0x78\u001b[0m\u001b[34m─╮\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[3;96masync def \u001b[0m\u001b[1;31mChipDeviceControllerBase.SendCommand\u001b[0m\u001b[1m(\u001b[0mnodeid: \u001b[32m'int'\u001b[0m, endpoint: \u001b[32m'int'\u001b[0m, payload:                         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[32m'ClusterObjects.ClusterCommand'\u001b[0m, \u001b[33mresponseType\u001b[0m=\u001b[3;35mNone\u001b[0m, timedRequestTimeoutMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m interactionTimeoutMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m, busyWaitMs: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mint\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m,                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m suppressResponse: \u001b[32m'typing.Optional\u001b[0m\u001b[32m[\u001b[0m\u001b[32mbool\u001b[0m\u001b[32m]\u001b[0m\u001b[32m'\u001b[0m = \u001b[3;35mNone\u001b[0m, payloadCapability: \u001b[32m'int'\u001b[0m = \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m:                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mSend a cluster-object encapsulated command to a node and get returned a future that can be awaited upon to \u001b[0m     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mreceive\u001b[0m                                                                                                         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mthe response. If a valid responseType is passed in, that will be used to de-serialize the object. If not,\u001b[0m       \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mthe type will be automatically deduced from the metadata received over the wire.\u001b[0m                                \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mtimedWriteTimeoutMs: Timeout for a timed invoke request. Omit or set to \u001b[0m\u001b[32m'None'\u001b[0m\u001b[36m to indicate a non-timed request.\u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36minteractionTimeoutMs: Overall timeout for the interaction. Omit or set to \u001b[0m\u001b[32m'None'\u001b[0m\u001b[36m to have the SDK automatically \u001b[0m \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mcompute the\u001b[0m                                                                                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36m                      right timeout value based on transport characteristics as well as the responsiveness of \u001b[0m  \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mthe target.\u001b[0m                                                                                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mReturns:\u001b[0m                                                                                                        \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36m    - command response. The type of the response is defined by the command.\u001b[0m                                     \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36mRaises:\u001b[0m                                                                                                         \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[36m    - InteractionModelError on error\u001b[0m                                                                            \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m                                                                                                                 \u001b[34m│\u001b[0m\n",
       "\u001b[34m│\u001b[0m \u001b[1;36m27\u001b[0m\u001b[3m attribute(s) not shown.\u001b[0m Run \u001b[1;35minspect\u001b[0m\u001b[1m(\u001b[0minspect\u001b[1m)\u001b[0m for options.                                                    \u001b[34m│\u001b[0m\n",
       "\u001b[34m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "matterhelp(devCtrl.SendCommand)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "85a5e222-3efc-499a-b41b-a76ec75e17ea",
   "metadata": {},
   "source": [
    "## Log Levels\n",
    "\n",
    "By default on boot, the log level is set to `logging.ERROR`. If you would like to see more debug messages, you can set the logging level by doing so:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "331b1d7b-02c7-4415-9583-630973024de7",
   "metadata": {},
   "outputs": [],
   "source": [
    "mattersetlog(logging.DEBUG)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f27e75e7-71fe-44fa-b070-f804a6afd1ce",
   "metadata": {},
   "source": [
    "To set it back:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "f0e3428d-2316-4f45-9746-f637191634c7",
   "metadata": {},
   "outputs": [],
   "source": [
    "mattersetlog(logging.WARNING)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d8bb4bc6-336e-4747-8a8b-dc8369f92246",
   "metadata": {},
   "source": [
    "## Pretty Printing\n",
    "The Matter REPL leverages the rich Python package heavily to do pretty printing of various data structures with appropriate colored formatting.\n",
    "\n",
    "This pretty printer is installed by default into the REPL environment:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "8282f584-bd20-4b2b-b8f9-ea72cf6c4820",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\n",
       "\u001b[1m{\u001b[0m\n",
       "\u001b[2;32m│   \u001b[0m\u001b[32m'value'\u001b[0m: \u001b[1m[\u001b[0m\n",
       "\u001b[2;32m│   │   \u001b[0m\u001b[1;36m1\u001b[0m,\n",
       "\u001b[2;32m│   │   \u001b[0m\u001b[1;36m2\u001b[0m,\n",
       "\u001b[2;32m│   │   \u001b[0m\u001b[1;36m3\u001b[0m,\n",
       "\u001b[2;32m│   │   \u001b[0m\u001b[1;36m4\u001b[0m,\n",
       "\u001b[2;32m│   │   \u001b[0m\u001b[1m[\u001b[0m\n",
       "\u001b[2;32m│   │   │   \u001b[0m\u001b[1;36m1\u001b[0m,\n",
       "\u001b[2;32m│   │   │   \u001b[0m\u001b[1;36m2\u001b[0m\n",
       "\u001b[2;32m│   │   \u001b[0m\u001b[1m]\u001b[0m\n",
       "\u001b[2;32m│   \u001b[0m\u001b[1m]\u001b[0m\n",
       "\u001b[1m}\u001b[0m"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = {'value': [1, 2, 3, 4, [1, 2]]}\n",
    "a"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
